1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-02 23:14:57 +03:00

Relocated grammar verb definitions in inter hierarchy

This commit is contained in:
Graham Nelson 2019-03-30 22:58:38 +00:00
parent 400aa1de04
commit 8fef22b9a5
2 changed files with 58 additions and 42 deletions

View file

@ -338,7 +338,10 @@ now supplies new ones).
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">gv</span><span class="plain">-</span><span class="element">&gt;first_line</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">)</span>
<span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"compiling Verb for empty grammar"</span><span class="plain">);</span>
<span class="identifier">Emit::named_verb_array_begin</span><span class="plain">(</span><span class="identifier">InterNames::new</span><span class="plain">(</span><span class="identifier">VERB_DECLARATION_ARRAY_INAMEF</span><span class="plain">), </span><span class="identifier">K_value</span><span class="plain">);</span>
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">array_iname</span><span class="plain"> = </span><span class="identifier">InterNames::new</span><span class="plain">(</span><span class="identifier">VERB_DECLARATION_ARRAY_INAMEF</span><span class="plain">);</span>
<span class="identifier">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="identifier">Packaging::synoptic_resource</span><span class="plain">(</span><span class="identifier">GRAMMAR_SUBPACKAGE</span><span class="plain">);</span>
<span class="identifier">Packaging::house</span><span class="plain">(</span><span class="identifier">array_iname</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="identifier">Emit::named_verb_array_begin</span><span class="plain">(</span><span class="identifier">array_iname</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Wordings::empty</span><span class="plain">(</span><span class="identifier">gv</span><span class="plain">-</span><span class="element">&gt;command</span><span class="plain">))</span>
<span class="identifier">Emit::array_dword_entry</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"no.verb"</span><span class="plain">);</span>
@ -565,11 +568,6 @@ names (e.g., "suitable colour").
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">gv</span><span class="plain">-</span><span class="element">&gt;gv_I6_identifier</span><span class="plain">, </span><span class="string">"%N"</span><span class="plain">, </span><span class="identifier">Wordings::first_wn</span><span class="plain">(</span><span class="identifier">ParseTree::get_text</span><span class="plain">(</span><span class="identifier">p2</span><span class="plain">)));</span>
<span class="plain">}</span>
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">PL::Parsing::Verbs::compile_i6_token</span><span class="plain">(</span><span class="identifier">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">grammar_verb</span><span class="plain"> *</span><span class="identifier">gv</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Str::len</span><span class="plain">(</span><span class="identifier">gv</span><span class="plain">-</span><span class="element">&gt;gv_I6_identifier</span><span class="plain">) &gt; 0) </span><span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%S"</span><span class="plain">, </span><span class="identifier">gv</span><span class="plain">-</span><span class="element">&gt;gv_I6_identifier</span><span class="plain">);</span>
<span class="reserved">else</span><span class="plain"> </span><span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%n"</span><span class="plain">, </span><span class="identifier">gv</span><span class="plain">-</span><span class="element">&gt;gv_line_iname</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="functiontext">PL::Parsing::Verbs::i6_token_as_iname</span><span class="plain">(</span><span class="reserved">grammar_verb</span><span class="plain"> *</span><span class="identifier">gv</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Str::len</span><span class="plain">(</span><span class="identifier">gv</span><span class="plain">-</span><span class="element">&gt;gv_I6_identifier</span><span class="plain">) &gt; 0)</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">InterNames::extern_name</span><span class="plain">(</span><span class="identifier">EXTERN_TOKEN_ROUTINE_INAMEF</span><span class="plain">, </span><span class="identifier">gv</span><span class="plain">-</span><span class="element">&gt;gv_I6_identifier</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
@ -582,8 +580,6 @@ names (e.g., "suitable colour").
<p class="endnote">The function PL::Parsing::Verbs::translates appears nowhere else.</p>
<p class="endnote">The function PL::Parsing::Verbs::compile_i6_token appears nowhere else.</p>
<p class="endnote">The function PL::Parsing::Verbs::i6_token_as_iname is used in 5/gt2 (<a href="5-gt2.html#SP12">&#167;12</a>).</p>
<p class="inwebparagraph"><a id="SP16"></a><b>&#167;16. Consultation grammars. </b>These are used for grammar included as a column of a table or in a
@ -892,6 +888,12 @@ in the final I6 output.
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">VERB_DIRECTIVE_TOPIC_iname</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">VERB_DIRECTIVE_MULTIEXCEPT_iname</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="functiontext">PL::Parsing::Verbs::grammar_constant</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">N</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">V</span><span class="plain">) {</span>
<span class="identifier">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="identifier">Packaging::synoptic_resource</span><span class="plain">(</span><span class="identifier">GRAMMAR_SUBPACKAGE</span><span class="plain">);</span>
<span class="identifier">Packaging::house</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">), </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">), 1);</span>
<span class="plain">}</span>
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">PL::Parsing::Verbs::compile_all</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
<span class="reserved">grammar_verb</span><span class="plain"> *</span><span class="identifier">gv</span><span class="plain">;</span>
<span class="functiontext">PL::Parsing::Verbs::gv_slash_all</span><span class="plain">();</span>
@ -899,20 +901,23 @@ in the final I6 output.
<span class="identifier">Log::new_stage</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"Sorting and compiling non-value grammar (G3, G4)"</span><span class="plain">);</span>
<span class="identifier">VERB_DIRECTIVE_REVERSE_iname</span><span class="plain"> = </span><span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_REVERSE_INAME</span><span class="plain">), 1);</span>
<span class="identifier">VERB_DIRECTIVE_SLASH_iname</span><span class="plain"> = </span><span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_SLASH_INAME</span><span class="plain">), 1);</span>
<span class="identifier">VERB_DIRECTIVE_DIVIDER_iname</span><span class="plain"> = </span><span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_DIVIDER_INAME</span><span class="plain">), 1);</span>
<span class="identifier">VERB_DIRECTIVE_RESULT_iname</span><span class="plain"> = </span><span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_RESULT_INAME</span><span class="plain">), 2);</span>
<span class="identifier">VERB_DIRECTIVE_SPECIAL_iname</span><span class="plain"> = </span><span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_SPECIAL_INAME</span><span class="plain">), 3);</span>
<span class="identifier">VERB_DIRECTIVE_NUMBER_iname</span><span class="plain"> = </span><span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_NUMBER_INAME</span><span class="plain">), 4);</span>
<span class="identifier">VERB_DIRECTIVE_NOUN_iname</span><span class="plain"> = </span><span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_NOUN_INAME</span><span class="plain">), 5);</span>
<span class="identifier">VERB_DIRECTIVE_MULTI_iname</span><span class="plain"> = </span><span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_MULTI_INAME</span><span class="plain">), 6);</span>
<span class="identifier">VERB_DIRECTIVE_MULTIINSIDE_iname</span><span class="plain"> = </span><span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_MULTIINSIDE_INAME</span><span class="plain">), 7);</span>
<span class="identifier">VERB_DIRECTIVE_MULTIHELD_iname</span><span class="plain"> = </span><span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_MULTIHELD_INAME</span><span class="plain">), 8);</span>
<span class="identifier">VERB_DIRECTIVE_HELD_iname</span><span class="plain"> = </span><span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_HELD_INAME</span><span class="plain">), 9);</span>
<span class="identifier">VERB_DIRECTIVE_CREATURE_iname</span><span class="plain"> = </span><span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_CREATURE_INAME</span><span class="plain">), 10);</span>
<span class="identifier">VERB_DIRECTIVE_TOPIC_iname</span><span class="plain"> = </span><span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_TOPIC_INAME</span><span class="plain">), 11);</span>
<span class="identifier">VERB_DIRECTIVE_MULTIEXCEPT_iname</span><span class="plain"> = </span><span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_MULTIEXCEPT_INAME</span><span class="plain">), 12);</span>
<span class="identifier">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="identifier">Packaging::synoptic_resource</span><span class="plain">(</span><span class="identifier">GRAMMAR_SUBPACKAGE</span><span class="plain">);</span>
<span class="identifier">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="identifier">Packaging::enter</span><span class="plain">(</span><span class="identifier">PR</span><span class="plain">);</span>
<span class="identifier">VERB_DIRECTIVE_REVERSE_iname</span><span class="plain"> = </span><span class="functiontext">PL::Parsing::Verbs::grammar_constant</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_REVERSE_INAME</span><span class="plain">, 1);</span>
<span class="identifier">VERB_DIRECTIVE_SLASH_iname</span><span class="plain"> = </span><span class="functiontext">PL::Parsing::Verbs::grammar_constant</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_SLASH_INAME</span><span class="plain">, 1);</span>
<span class="identifier">VERB_DIRECTIVE_DIVIDER_iname</span><span class="plain"> = </span><span class="functiontext">PL::Parsing::Verbs::grammar_constant</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_DIVIDER_INAME</span><span class="plain">, 1);</span>
<span class="identifier">VERB_DIRECTIVE_RESULT_iname</span><span class="plain"> = </span><span class="functiontext">PL::Parsing::Verbs::grammar_constant</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_RESULT_INAME</span><span class="plain">, 2);</span>
<span class="identifier">VERB_DIRECTIVE_SPECIAL_iname</span><span class="plain"> = </span><span class="functiontext">PL::Parsing::Verbs::grammar_constant</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_SPECIAL_INAME</span><span class="plain">, 3);</span>
<span class="identifier">VERB_DIRECTIVE_NUMBER_iname</span><span class="plain"> = </span><span class="functiontext">PL::Parsing::Verbs::grammar_constant</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_NUMBER_INAME</span><span class="plain">, 4);</span>
<span class="identifier">VERB_DIRECTIVE_NOUN_iname</span><span class="plain"> = </span><span class="functiontext">PL::Parsing::Verbs::grammar_constant</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_NOUN_INAME</span><span class="plain">, 5);</span>
<span class="identifier">VERB_DIRECTIVE_MULTI_iname</span><span class="plain"> = </span><span class="functiontext">PL::Parsing::Verbs::grammar_constant</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_MULTI_INAME</span><span class="plain">, 6);</span>
<span class="identifier">VERB_DIRECTIVE_MULTIINSIDE_iname</span><span class="plain"> = </span><span class="functiontext">PL::Parsing::Verbs::grammar_constant</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_MULTIINSIDE_INAME</span><span class="plain">, 7);</span>
<span class="identifier">VERB_DIRECTIVE_MULTIHELD_iname</span><span class="plain"> = </span><span class="functiontext">PL::Parsing::Verbs::grammar_constant</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_MULTIHELD_INAME</span><span class="plain">, 8);</span>
<span class="identifier">VERB_DIRECTIVE_HELD_iname</span><span class="plain"> = </span><span class="functiontext">PL::Parsing::Verbs::grammar_constant</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_HELD_INAME</span><span class="plain">, 9);</span>
<span class="identifier">VERB_DIRECTIVE_CREATURE_iname</span><span class="plain"> = </span><span class="functiontext">PL::Parsing::Verbs::grammar_constant</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_CREATURE_INAME</span><span class="plain">, 10);</span>
<span class="identifier">VERB_DIRECTIVE_TOPIC_iname</span><span class="plain"> = </span><span class="functiontext">PL::Parsing::Verbs::grammar_constant</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_TOPIC_INAME</span><span class="plain">, 11);</span>
<span class="identifier">VERB_DIRECTIVE_MULTIEXCEPT_iname</span><span class="plain"> = </span><span class="functiontext">PL::Parsing::Verbs::grammar_constant</span><span class="plain">(</span><span class="identifier">VERB_DIRECTIVE_MULTIEXCEPT_INAME</span><span class="plain">, 12);</span>
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">gv</span><span class="plain">, </span><span class="reserved">grammar_verb</span><span class="plain">)</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">gv</span><span class="plain">-</span><span class="element">&gt;gv_is</span><span class="plain"> == </span><span class="constant">GV_IS_TOKEN</span><span class="plain">)</span>
@ -935,11 +940,14 @@ in the final I6 output.
<span class="functiontext">PL::Parsing::Verbs::compile</span><span class="plain">(</span><span class="identifier">gv</span><span class="plain">); </span> <span class="comment">makes routines for use in <code class="display"><span class="extract">parse_name</span></code></span>
<span class="functiontext">PL::Parsing::Lines::compile_slash_gprs</span><span class="plain">();</span>
<span class="identifier">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">The function PL::Parsing::Verbs::grammar_constant appears nowhere else.</p>
<p class="endnote">The function PL::Parsing::Verbs::compile_all appears nowhere else.</p>
<p class="inwebparagraph"><a id="SP27"></a><b>&#167;27. </b>The following routine unites, so far as possible, the different forms of

View file

@ -271,7 +271,10 @@ void PL::Parsing::Verbs::gv_compile_Verb_directive_header(grammar_verb *gv) {
if (gv->first_line == NULL)
internal_error("compiling Verb for empty grammar");
Emit::named_verb_array_begin(InterNames::new(VERB_DECLARATION_ARRAY_INAMEF), K_value);
inter_name *array_iname = InterNames::new(VERB_DECLARATION_ARRAY_INAMEF);
package_request *PR = Packaging::synoptic_resource(GRAMMAR_SUBPACKAGE);
Packaging::house(array_iname, PR);
Emit::named_verb_array_begin(array_iname, K_value);
if (Wordings::empty(gv->command))
Emit::array_dword_entry(I"no.verb");
@ -450,11 +453,6 @@ void PL::Parsing::Verbs::translates(wording W, parse_node *p2) {
WRITE_TO(gv->gv_I6_identifier, "%N", Wordings::first_wn(ParseTree::get_text(p2)));
}
void PL::Parsing::Verbs::compile_i6_token(OUTPUT_STREAM, grammar_verb *gv) {
if (Str::len(gv->gv_I6_identifier) > 0) WRITE("%S", gv->gv_I6_identifier);
else WRITE("%n", gv->gv_line_iname);
}
inter_name *PL::Parsing::Verbs::i6_token_as_iname(grammar_verb *gv) {
if (Str::len(gv->gv_I6_identifier) > 0)
return InterNames::extern_name(EXTERN_TOKEN_ROUTINE_INAMEF, gv->gv_I6_identifier, NULL);
@ -694,6 +692,12 @@ inter_name *VERB_DIRECTIVE_CREATURE_iname = NULL;
inter_name *VERB_DIRECTIVE_TOPIC_iname = NULL;
inter_name *VERB_DIRECTIVE_MULTIEXCEPT_iname = NULL;
inter_name *PL::Parsing::Verbs::grammar_constant(int N, int V) {
package_request *PR = Packaging::synoptic_resource(GRAMMAR_SUBPACKAGE);
Packaging::house(InterNames::iname(N), PR);
return Emit::named_numeric_constant(InterNames::iname(N), 1);
}
void PL::Parsing::Verbs::compile_all(void) {
grammar_verb *gv;
PL::Parsing::Verbs::gv_slash_all();
@ -701,20 +705,23 @@ void PL::Parsing::Verbs::compile_all(void) {
Log::new_stage(I"Sorting and compiling non-value grammar (G3, G4)");
VERB_DIRECTIVE_REVERSE_iname = Emit::named_numeric_constant(InterNames::iname(VERB_DIRECTIVE_REVERSE_INAME), 1);
VERB_DIRECTIVE_SLASH_iname = Emit::named_numeric_constant(InterNames::iname(VERB_DIRECTIVE_SLASH_INAME), 1);
VERB_DIRECTIVE_DIVIDER_iname = Emit::named_numeric_constant(InterNames::iname(VERB_DIRECTIVE_DIVIDER_INAME), 1);
VERB_DIRECTIVE_RESULT_iname = Emit::named_numeric_constant(InterNames::iname(VERB_DIRECTIVE_RESULT_INAME), 2);
VERB_DIRECTIVE_SPECIAL_iname = Emit::named_numeric_constant(InterNames::iname(VERB_DIRECTIVE_SPECIAL_INAME), 3);
VERB_DIRECTIVE_NUMBER_iname = Emit::named_numeric_constant(InterNames::iname(VERB_DIRECTIVE_NUMBER_INAME), 4);
VERB_DIRECTIVE_NOUN_iname = Emit::named_numeric_constant(InterNames::iname(VERB_DIRECTIVE_NOUN_INAME), 5);
VERB_DIRECTIVE_MULTI_iname = Emit::named_numeric_constant(InterNames::iname(VERB_DIRECTIVE_MULTI_INAME), 6);
VERB_DIRECTIVE_MULTIINSIDE_iname = Emit::named_numeric_constant(InterNames::iname(VERB_DIRECTIVE_MULTIINSIDE_INAME), 7);
VERB_DIRECTIVE_MULTIHELD_iname = Emit::named_numeric_constant(InterNames::iname(VERB_DIRECTIVE_MULTIHELD_INAME), 8);
VERB_DIRECTIVE_HELD_iname = Emit::named_numeric_constant(InterNames::iname(VERB_DIRECTIVE_HELD_INAME), 9);
VERB_DIRECTIVE_CREATURE_iname = Emit::named_numeric_constant(InterNames::iname(VERB_DIRECTIVE_CREATURE_INAME), 10);
VERB_DIRECTIVE_TOPIC_iname = Emit::named_numeric_constant(InterNames::iname(VERB_DIRECTIVE_TOPIC_INAME), 11);
VERB_DIRECTIVE_MULTIEXCEPT_iname = Emit::named_numeric_constant(InterNames::iname(VERB_DIRECTIVE_MULTIEXCEPT_INAME), 12);
package_request *PR = Packaging::synoptic_resource(GRAMMAR_SUBPACKAGE);
packaging_state save = Packaging::enter(PR);
VERB_DIRECTIVE_REVERSE_iname = PL::Parsing::Verbs::grammar_constant(VERB_DIRECTIVE_REVERSE_INAME, 1);
VERB_DIRECTIVE_SLASH_iname = PL::Parsing::Verbs::grammar_constant(VERB_DIRECTIVE_SLASH_INAME, 1);
VERB_DIRECTIVE_DIVIDER_iname = PL::Parsing::Verbs::grammar_constant(VERB_DIRECTIVE_DIVIDER_INAME, 1);
VERB_DIRECTIVE_RESULT_iname = PL::Parsing::Verbs::grammar_constant(VERB_DIRECTIVE_RESULT_INAME, 2);
VERB_DIRECTIVE_SPECIAL_iname = PL::Parsing::Verbs::grammar_constant(VERB_DIRECTIVE_SPECIAL_INAME, 3);
VERB_DIRECTIVE_NUMBER_iname = PL::Parsing::Verbs::grammar_constant(VERB_DIRECTIVE_NUMBER_INAME, 4);
VERB_DIRECTIVE_NOUN_iname = PL::Parsing::Verbs::grammar_constant(VERB_DIRECTIVE_NOUN_INAME, 5);
VERB_DIRECTIVE_MULTI_iname = PL::Parsing::Verbs::grammar_constant(VERB_DIRECTIVE_MULTI_INAME, 6);
VERB_DIRECTIVE_MULTIINSIDE_iname = PL::Parsing::Verbs::grammar_constant(VERB_DIRECTIVE_MULTIINSIDE_INAME, 7);
VERB_DIRECTIVE_MULTIHELD_iname = PL::Parsing::Verbs::grammar_constant(VERB_DIRECTIVE_MULTIHELD_INAME, 8);
VERB_DIRECTIVE_HELD_iname = PL::Parsing::Verbs::grammar_constant(VERB_DIRECTIVE_HELD_INAME, 9);
VERB_DIRECTIVE_CREATURE_iname = PL::Parsing::Verbs::grammar_constant(VERB_DIRECTIVE_CREATURE_INAME, 10);
VERB_DIRECTIVE_TOPIC_iname = PL::Parsing::Verbs::grammar_constant(VERB_DIRECTIVE_TOPIC_INAME, 11);
VERB_DIRECTIVE_MULTIEXCEPT_iname = PL::Parsing::Verbs::grammar_constant(VERB_DIRECTIVE_MULTIEXCEPT_INAME, 12);
LOOP_OVER(gv, grammar_verb)
if (gv->gv_is == GV_IS_TOKEN)
@ -737,6 +744,7 @@ void PL::Parsing::Verbs::compile_all(void) {
PL::Parsing::Verbs::compile(gv); /* makes routines for use in |parse_name| */
PL::Parsing::Lines::compile_slash_gprs();
Packaging::exit(save);
}
@ The following routine unites, so far as possible, the different forms of