mirror of
https://github.com/ganelson/inform.git
synced 2024-06-29 05:24:57 +03:00
More systematic synoptic generation
This commit is contained in:
parent
3322cbb0ee
commit
4a3e6d0cf7
|
@ -1,6 +1,6 @@
|
|||
# Inform 7
|
||||
|
||||
v10.1.0-alpha.1+6S04 'Krypton' (7 May 2021)
|
||||
v10.1.0-alpha.1+6S05 'Krypton' (8 May 2021)
|
||||
|
||||
## About Inform 7
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Prerelease: alpha.1
|
||||
Build Date: 7 May 2021
|
||||
Build Number: 6S04
|
||||
Build Date: 8 May 2021
|
||||
Build Number: 6S05
|
||||
|
|
|
@ -126,7 +126,7 @@ quaint idea of having enumerated ways in which they finish (see <a href="6-fao.h
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">rulebook</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure rulebook is accessed in 3/nuor, 3/rpr, 5/id, 5/idf, 5/adf, 5/tpf, 5/rf, 5/rcd, 6/rls, 6/fao, 6/act, 6/sv, 7/tc, 7/tbl and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure rulebook is accessed in 3/nuor, 3/rpr, 5/id, 5/idf, 5/adf, 5/tpf, 5/rf, 5/rcd, 6/rls, 6/fao, 6/act, 6/sv, 7/tc, 7/tbl, 7/eqt and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>The following creates one:
|
||||
</p>
|
||||
|
||||
|
|
|
@ -208,7 +208,7 @@ only be a 16-bit unsigned integer.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">size_of_largest_set</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure shared_variable_set is accessed in 3/nuor, 5/id, 5/idf, 5/adf, 5/tpf, 5/rf, 5/rcd, 6/rls, 6/rlb, 6/act, 7/tc, 7/tbl and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure shared_variable_set is accessed in 3/nuor, 5/id, 5/idf, 5/adf, 5/tpf, 5/rf, 5/rcd, 6/rls, 6/rlb, 6/act, 7/tc, 7/tbl, 7/eqt and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b>Returns the first variable in the set whose matching text begins <span class="extract"><span class="extract-syntax">W</span></span>. Note
|
||||
that this requires the match text to be nonempty, so it can only return
|
||||
variables which have one.
|
||||
|
|
|
@ -105,12 +105,13 @@ Also as with tables, each can have a number, a name or both.
|
|||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">examined_already</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">equation_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">parsed_equation</span><span class="plain-syntax">; </span><span class="comment-syntax"> and the equation itself (when eventually parsed)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eqn_iname</span><span class="plain-syntax">; </span><span class="comment-syntax"> used at run-time to identify this</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">equation_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symbol_list</span><span class="plain-syntax">; </span><span class="comment-syntax"> the symbols used</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">equation_compilation_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">equation</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure equation is private to this section.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure equation is accessed in 3/nuor, 5/id, 5/idf, 5/adf, 5/tpf, 5/rf, 5/rcd, 6/rls, 6/rlb, 6/act, 6/sv, 7/tc, 7/tbl and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>Each equation is allowed to use one or more symbols. Some may correspond
|
||||
to local variables in surrounding code from time to time, but others will
|
||||
be constants, and it's better to think of these as placeholders in the
|
||||
|
@ -253,8 +254,6 @@ either case, an equation begins here:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">eqn</span><span class="plain-syntax">-></span><span class="element-syntax">symbol_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">eqn</span><span class="plain-syntax">-></span><span class="element-syntax">examined_already</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTEquations::new_identifier</span><span class="plain-syntax">(</span><span class="identifier-syntax">eqn</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">NO</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">, </span><span class="identifier-syntax">NA</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">anonymous</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-eqt.html#SP8_1_1" class="named-paragraph-link"><span class="named-paragraph">Parse the equation's number and/or name</span><span class="named-paragraph-number">8.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -269,6 +268,8 @@ either case, an equation begins here:
|
|||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><text-ending-in-comma></span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><text-ending-in-comma></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">eqn</span><span class="plain-syntax">-></span><span class="element-syntax">equation_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">W</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">eqn</span><span class="plain-syntax">-></span><span class="element-syntax">compilation_data</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RTEquations::new_compilation_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">eqn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">eqn</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -109,7 +109,7 @@ column ID numbers: see <a href="../runtime-module/5-rsft.html" class="internal">
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">table</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure table is accessed in 3/nuor, 3/dbtr, 5/id, 5/idf, 5/adf, 5/tpf, 5/rf, 5/rcd, 6/rls, 6/rlb, 6/act, 6/sv, 7/tc and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure table is accessed in 3/nuor, 3/dbtr, 5/id, 5/idf, 5/adf, 5/tpf, 5/rf, 5/rcd, 6/rls, 6/rlb, 6/act, 6/sv, 7/tc, 7/eqt and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>For indexing purposes only:
|
||||
</p>
|
||||
|
||||
|
|
|
@ -233,7 +233,7 @@ by looking through the column-heading lines of tables. Each one makes:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">table_column_usage_compilation_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">table_column_usage</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure table_column_usage is accessed in 3/nuor, 3/dbtr, 5/id, 5/idf, 5/adf, 5/tpf, 5/rf, 5/rcd, 6/rls, 6/rlb, 6/act, 6/sv, 7/tbl and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure table_column_usage is accessed in 3/nuor, 3/dbtr, 5/id, 5/idf, 5/adf, 5/tpf, 5/rf, 5/rcd, 6/rls, 6/rlb, 6/act, 6/sv, 7/tbl, 7/eqt and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b>Each piece of heading text is passed to the following routine in turn:
|
||||
</p>
|
||||
|
||||
|
|
|
@ -331,7 +331,9 @@ following fields set.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">hl</span><span class="plain-syntax">-></span><span class="element-syntax">requirements</span><span class="plain-syntax">.</span><span class="element-syntax">any_enclosure</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inter::Symbols::read_annotation</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">eventual_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">ENCLOSING_IANN</span><span class="plain-syntax">) != </span><span class="constant-syntax">1</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"subpackage not in enclosing superpackage"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">P</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">eventual_type</span><span class="plain-syntax"> != </span><a href="1-pt.html#SP1" class="function-link"><span class="function-syntax">PackageTypes::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">hl</span><span class="plain-syntax">-></span><span class="element-syntax">requirements</span><span class="plain-syntax">.</span><span class="element-syntax">any_package_of_this_type</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"constant in null package"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">eventual_type</span><span class="plain-syntax"> != </span><a href="1-pt.html#SP1" class="function-link"><span class="function-syntax">PackageTypes::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">hl</span><span class="plain-syntax">-></span><span class="element-syntax">requirements</span><span class="plain-syntax">.</span><span class="element-syntax">any_package_of_this_type</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"AN: %S, FPN: %S\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">hl</span><span class="plain-syntax">-></span><span class="element-syntax">access_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">hl</span><span class="plain-syntax">-></span><span class="element-syntax">function_package_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Have type: $3, required: %S\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">eventual_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">hl</span><span class="plain-syntax">-></span><span class="element-syntax">requirements</span><span class="plain-syntax">.</span><span class="element-syntax">any_package_of_this_type</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"constant in wrong superpackage"</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -85,6 +85,8 @@ which use this module:
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">code_generation_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">generated_segment_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">link_instruction_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">tree_inventory_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">tree_inventory_item_CLASS</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">I6T_intervention</span><span class="plain-syntax">)</span>
|
||||
|
@ -98,6 +100,8 @@ which use this module:
|
|||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">code_generation</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">generated_segment</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">link_instruction</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax">)</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>Like all modules, this one must define a <span class="extract"><span class="extract-syntax">start</span></span> and <span class="extract"><span class="extract-syntax">end</span></span> function:
|
||||
</p>
|
||||
|
|
|
@ -81,11 +81,11 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticActivities::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticActivities::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticActivities::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticActivities::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">activity_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">activity_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">activity_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">activity_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"activity_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_optional_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"var_id"</span><span class="plain-syntax">);</span>
|
||||
|
@ -105,8 +105,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_AFTER_RULEBOOKS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">activity_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">activity_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^after_rulebook"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -120,8 +120,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_ATB_RULEBOOKS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_iname_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">BYTEARRAY_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">activity_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">activity_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">ubf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^used_by_future"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ubf</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -134,8 +134,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_BEFORE_RULEBOOKS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">activity_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">activity_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^before_rulebook"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -148,8 +148,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_FOR_RULEBOOKS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">activity_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">activity_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^for_rulebook"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -162,8 +162,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_VAR_CREATORS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">activity_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">activity_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^var_creator"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">) </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
|
|
|
@ -89,11 +89,11 @@ of packages of type <span class="extract"><span class="extract-syntax">_action</
|
|||
<span class="definition-keyword">define</span> <span class="constant-syntax">REQUIRES_POSSESSION</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span><span class="plain-syntax"> </span><span class="comment-syntax"> actor must be carrying this object</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticActions::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticActions::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticActions::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticActions::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">action_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">action_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">action_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">action_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"action_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_optional_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"var_id"</span><span class="plain-syntax">);</span>
|
||||
|
@ -102,7 +102,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_action</
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-act2.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Define CCOUNT_ACTION_NAME</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-act2.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Define AD_RECORDS</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">action_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-act2.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Define ACTIONHAPPENED array</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-act2.html#SP2_4" class="named-paragraph-link"><span class="named-paragraph">Define ACTIONCODING array</span><span class="named-paragraph-number">2.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-act2.html#SP2_5" class="named-paragraph-link"><span class="named-paragraph">Define ACTIONDATA array</span><span class="named-paragraph-number">2.5</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -115,7 +115,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_action</
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">CCOUNT_ACTION_NAME_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">action_nodes</span><span class="plain-syntax">));</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-act2.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_2" class="paragraph-anchor"></a><b>§2.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define AD_RECORDS</span><span class="named-paragraph-number">2.2</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -123,7 +123,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_action</
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">AD_RECORDS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">action_nodes</span><span class="plain-syntax">));</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-act2.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_3" class="paragraph-anchor"></a><b>§2.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define ACTIONHAPPENED array</span><span class="named-paragraph-number">2.3</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -132,7 +132,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_action</
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIONHAPPENED_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><=(</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">)/16); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><=(TreeLists::len(inv-></span><span class="element-syntax">action_nodes</span><span class="plain-syntax">)/16); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
|
@ -144,8 +144,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_action</
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIONCODING_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">action_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">action_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">double_sharp_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^double_sharp"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">no</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^no_coding"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">no</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">double_sharp_s</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
|
@ -162,8 +162,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_action</
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIONDATA_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_iname_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">TABLEARRAY_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">action_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">action_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">double_sharp_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^double_sharp"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">double_sharp_s</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
|
@ -220,8 +220,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_action</
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">action_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">action_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">double_sharp_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^double_sharp"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">double_sharp_s</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">debug_fn_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^debug_fn"</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -81,19 +81,19 @@ over the Inter tree. Each needs its own set of unique IDs.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticChronology::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticChronology::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_history_condition_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_history_condition_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_history_condition_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_history_condition_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticChronology::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticChronology::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">action_history_condition_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">action_history_condition_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">action_history_condition_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">action_history_condition_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ahc_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">past_tense_condition_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">past_tense_condition_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">past_tense_condition_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">past_tense_condition_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">past_tense_condition_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">past_tense_condition_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">past_tense_condition_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">past_tense_condition_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ptc_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -114,7 +114,7 @@ over the Inter tree. Each needs its own set of unique IDs.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">NO_PAST_TENSE_CONDS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">past_tense_condition_nodes</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">past_tense_condition_nodes</span><span class="plain-syntax">));</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-chr.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_2" class="paragraph-anchor"></a><b>§1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define NO_PAST_TENSE_ACTIONS</span><span class="named-paragraph-number">1.2</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -122,7 +122,7 @@ over the Inter tree. Each needs its own set of unique IDs.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">NO_PAST_TENSE_ACTIONS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_history_condition_nodes</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">action_history_condition_nodes</span><span class="plain-syntax">));</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-chr.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_3" class="paragraph-anchor"></a><b>§1.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define TIMEDEVENTSTABLE</span><span class="named-paragraph-number">1.3</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -133,8 +133,8 @@ over the Inter tree. Each needs its own set of unique IDs.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_iname_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">TABLEARRAY_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">when_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">rule_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">rule_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">rule_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">rule_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^timed"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rule_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^value"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^timed_for"</span><span class="plain-syntax">)) {</span>
|
||||
|
@ -157,8 +157,8 @@ over the Inter tree. Each needs its own set of unique IDs.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_iname_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">TABLEARRAY_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">when_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">rule_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">rule_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">rule_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">rule_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^timed"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^timed_for"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^timed_for"</span><span class="plain-syntax">);</span>
|
||||
|
@ -179,8 +179,8 @@ over the Inter tree. Each needs its own set of unique IDs.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">PASTACTIONSI6ROUTINES_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_history_condition_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_history_condition_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">action_history_condition_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">action_history_condition_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">fn_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^value"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">fn_s</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no pap_fn"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">fn_s</span><span class="plain-syntax">);</span>
|
||||
|
@ -205,7 +205,7 @@ over the Inter tree. Each needs its own set of unique IDs.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">trips_s</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::local</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"trips"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">consecutives_s</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::local</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"consecutives"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">past_tense_condition_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">past_tense_condition_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prcr_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">PRESENT_CHRONOLOGICAL_RECORD_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pacr_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">PAST_CHRONOLOGICAL_RECORD_HL</span><span class="plain-syntax">));</span>
|
||||
|
||||
|
@ -377,8 +377,8 @@ over the Inter tree. Each needs its own set of unique IDs.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">pt_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">past_tense_condition_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">past_tense_condition_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">past_tense_condition_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">past_tense_condition_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">fn_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^value"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">fn_s</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no pcon_fn"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">CASE_BIP</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -81,11 +81,11 @@ of packages of type <span class="extract"><span class="extract-syntax">_module</
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticExtensions::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticExtensions::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::category_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticExtensions::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticExtensions::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">extension_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">extension_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::category_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">extension_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">extension_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"extension_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -124,8 +124,8 @@ would violate the CC license.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">SHOWEXTENSIONVERSIONS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">extension_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">extension_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">modesty</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^modesty"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">modesty</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">credit</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">Metadata::read_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^credit"</span><span class="plain-syntax">));</span>
|
||||
|
@ -148,8 +148,8 @@ would violate the CC license.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">SHOWFULLEXTENSIONVERSIONS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">extension_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">extension_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">credit</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">Metadata::read_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^credit"</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">credit</span><span class="plain-syntax">, </span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
|
@ -171,8 +171,8 @@ is its extension ID.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">SHOWONEEXTENSION_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">id_s</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::local</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"id"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">extension_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">extension_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">credit</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^credit"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -83,9 +83,9 @@ of packages of type <span class="extract"><span class="extract-syntax">_instance
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticInstances::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticInstances::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticInstances::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticInstances::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">instance_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">instance_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-ins.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Define SHOWMEINSTANCEDETAILS function</span><span class="named-paragraph-number">1.1</span></a></span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -99,8 +99,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_instance
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">which_s</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::local</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"which"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_s</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::local</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"na"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::local</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"t_0"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">instance_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">instance_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">showme_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^showme_fn"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">showme_s</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -95,17 +95,17 @@ of packages of type <span class="extract"><span class="extract-syntax">_kind</sp
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticKinds::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticKinds::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticKinds::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticKinds::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">weak_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^weak_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">weak_s</span><span class="plain-syntax">) </span><span class="identifier-syntax">Inter::Symbols::set_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">weak_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+2);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">derived_kind_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">derived_kind_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">derived_kind_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">derived_kind_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-knd.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Define BASE_KIND_HWM</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-knd.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Define DEFAULTVALUEFINDER function</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -124,7 +124,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_kind</sp
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">BASE_KIND_HWM_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">) + </span><span class="constant-syntax">2</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">) + </span><span class="constant-syntax">2</span><span class="plain-syntax">));</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-knd.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_2" class="paragraph-anchor"></a><b>§1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define DEFAULTVALUEFINDER function</span><span class="named-paragraph-number">1.2</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -134,8 +134,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_kind</sp
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">DEFAULTVALUEFINDER_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">k_s</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::local</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"k"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">derived_kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">derived_kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">derived_kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">derived_kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^default_value_needed"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rks_s</span><span class="plain-syntax"> = </span><a href="3-su.html#SP3" class="function-link"><span class="function-syntax">Synoptic::get_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"strong_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dv_s</span><span class="plain-syntax"> = </span><a href="3-su.html#SP3" class="function-link"><span class="function-syntax">Synoptic::get_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"default_value"</span><span class="plain-syntax">);</span>
|
||||
|
@ -186,8 +186,8 @@ which have to be given some type-safe value to start out at.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">k_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^mkdef_fn"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">weak_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^weak_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">mkdef_fn_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^mkdef_fn"</span><span class="plain-syntax">);</span>
|
||||
|
@ -237,8 +237,8 @@ which have to be given some type-safe value to start out at.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">k_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_base"</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^print_fn"</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_subkind_of_object"</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
|
||||
|
@ -301,8 +301,8 @@ unless the two values are genuinely equal.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">k_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^cmp_fn"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">weak_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^weak_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cmp_fn_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^cmp_fn"</span><span class="plain-syntax">);</span>
|
||||
|
@ -345,8 +345,8 @@ unless the two values are genuinely equal.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">k_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^domain_size"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">weak_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^weak_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">domain_size</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^domain_size"</span><span class="plain-syntax">);</span>
|
||||
|
@ -395,8 +395,8 @@ a kind storing pointers to blocks of data.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">k_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^has_block_values"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">weak_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^weak_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">CASE_BIP</span><span class="plain-syntax">);</span>
|
||||
|
@ -422,8 +422,8 @@ a kind storing pointers to blocks of data.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">I7_KIND_NAME_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">k_s</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::local</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"k"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">class_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^object_class"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">class_s</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^printed_name"</span><span class="plain-syntax">);</span>
|
||||
|
@ -475,8 +475,8 @@ such a function does, see "BlockValues.i6t".
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">k_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^has_block_values"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">weak_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^weak_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">support_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^support_fn"</span><span class="plain-syntax">);</span>
|
||||
|
@ -521,8 +521,8 @@ such a function does, see "BlockValues.i6t".
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">which_s</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::local</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"which"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_s</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::local</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"na"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::local</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"t_0"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_object"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">showme_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^showme_fn"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">showme_s</span><span class="plain-syntax">) {</span>
|
||||
|
|
|
@ -98,16 +98,16 @@ of constants marked with the <span class="extract"><span class="extract-syntax">
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticText::alphabetise</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticText::alphabetise</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text_nodes</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_nodes</span><span class="plain-syntax">, </span><a href="3-lt.html#SP2" class="function-link"><span class="function-syntax">SynopticText::cmp</span></a><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticText::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticText::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">text_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">text_nodes</span><span class="plain-syntax">, </span><a href="3-lt.html#SP2" class="function-link"><span class="function-syntax">SynopticText::cmp</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">texts_pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Site::ensure_texts_package</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_bookmark</span><span class="plain-syntax"> </span><span class="identifier-syntax">IBM</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Bookmarks::at_end_of_this_package</span><span class="plain-syntax">(</span><span class="identifier-syntax">texts_pack</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">latest_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">latest_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0, </span><span class="identifier-syntax">j</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">text_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0, </span><span class="identifier-syntax">j</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">text_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">text_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::container</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><a href="3-lt.html#SP2" class="function-link"><span class="function-syntax">SynopticText::text_quoted_here</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">latest_text</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">Str::ne</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">latest_text</span><span class="plain-syntax">)))</span>
|
||||
|
|
|
@ -81,15 +81,15 @@ of instances having the kind <span class="extract"><span class="extract-syntax">
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticMultimedia::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticMultimedia::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticMultimedia::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticMultimedia::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">figure_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">figure_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">sound_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">sound_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">file_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">file_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-mlt.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Define RESOURCEIDSOFFIGURES array</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-mlt.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Define RESOURCEIDSOFSOUNDS array</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -104,8 +104,8 @@ of instances having the kind <span class="extract"><span class="extract-syntax">
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">RESOURCEIDSOFFIGURES_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">figure_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">figure_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^resource_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -120,8 +120,8 @@ of instances having the kind <span class="extract"><span class="extract-syntax">
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">RESOURCEIDSOFSOUNDS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">sound_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">sound_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^resource_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -134,7 +134,7 @@ of instances having the kind <span class="extract"><span class="extract-syntax">
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">NO_EXTERNAL_FILES_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">file_nodes</span><span class="plain-syntax">));</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-mlt.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_4" class="paragraph-anchor"></a><b>§1.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define TABLEOFEXTERNALFILES array</span><span class="named-paragraph-number">1.4</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -144,8 +144,8 @@ of instances having the kind <span class="extract"><span class="extract-syntax">
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">TABLEOFEXTERNALFILES_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">file_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">file_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^file_value"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
|
@ -81,11 +81,11 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticProperties::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticProperties::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">property_nodes</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">property_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">property_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">property_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">property_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticProperties::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticProperties::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">property_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">property_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">property_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">property_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"property_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -98,7 +98,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">CCOUNT_PROPERTY_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">property_nodes</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">property_nodes</span><span class="plain-syntax">)));</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-prp.html#SP1">§1</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
|
|
|
@ -81,11 +81,11 @@ of packages of type <span class="extract"><span class="extract-syntax">_rulebook
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticRules::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticRules::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticRules::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticRules::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"rulebook_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -108,7 +108,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_rulebook
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">NUMBER_RULEBOOKS_CREATED_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax">)));</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-rls.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_2" class="paragraph-anchor"></a><b>§1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define RulebookNames array</span><span class="named-paragraph-number">1.2</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -121,8 +121,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_rulebook
|
|||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^printed_name"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::textual_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -136,8 +136,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_rulebook
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">RULEBOOK_VAR_CREATORS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^var_creator"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">) </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
|
@ -151,8 +151,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_rulebook
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">RULEBOOKS_ARRAY_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">fn_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^run_fn"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">fn_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -173,8 +173,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_rulebook
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">rb_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^var_creator"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">CASE_BIP</span><span class="plain-syntax">);</span>
|
||||
|
@ -219,7 +219,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_rulebook
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">LT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">R_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
|
@ -281,8 +281,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_rulebook
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">")"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">rule_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">rule_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">rule_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">rule_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^printed_name"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rule_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^value"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -81,11 +81,11 @@ of packages of type <span class="extract"><span class="extract-syntax">_relation
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticRelations::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticRelations::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticRelations::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticRelations::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">relation_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">relation_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">relation_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">relation_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"relation_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -101,7 +101,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_relation
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">CCOUNT_BINARY_PREDICATE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">relation_nodes</span><span class="plain-syntax">)));</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-rlt.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_2" class="paragraph-anchor"></a><b>§1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define CREATEDYNAMICRELATIONS function</span><span class="named-paragraph-number">1.2</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -110,8 +110,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_relation
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">CREATEDYNAMICRELATIONS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">relation_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">relation_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">creator_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^creator"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">creator_s</span><span class="plain-syntax">) </span><span class="identifier-syntax">Produce::inv_call</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">creator_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -125,8 +125,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_relation
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">ITERATERELATIONS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">callback_s</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::local</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"callback"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">relation_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">relation_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rel_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^value"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">INDIRECT1V_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -92,10 +92,10 @@ correct ID.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticResponses::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticResponses::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticResponses::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticResponses::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">response_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">response_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">response_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"response_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">i</span><span class="plain-syntax">+1;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -111,7 +111,7 @@ correct ID.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">NO_RESPONSES_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">response_nodes</span><span class="plain-syntax">)));</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-rsp.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_2" class="paragraph-anchor"></a><b>§1.2. </b>This is the critical array which connects a response ID to the current value
|
||||
|
@ -124,8 +124,8 @@ of the text of that response.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">RESPONSETEXTS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">response_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">response_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">value_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^value"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -154,8 +154,8 @@ The triple <span class="extract"><span class="extract-syntax">(0, 0, 0)</span></
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">RESPONSEDIVISIONS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">current_group</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">start_pos</span><span class="plain-syntax"> = -1;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">response_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">response_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">group</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^group"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::ne</span><span class="plain-syntax">(</span><span class="identifier-syntax">group</span><span class="plain-syntax">, </span><span class="identifier-syntax">current_group</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">start_pos</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
|
@ -170,7 +170,7 @@ The triple <span class="extract"><span class="extract-syntax">(0, 0, 0)</span></
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">start_pos</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::textual_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">current_group</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">start_pos</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">response_nodes</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
|
@ -202,8 +202,8 @@ code is less limited.
|
|||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R_s</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::local</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"R"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">response_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">response_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">m</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^marker"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rule_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^value"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -80,9 +80,9 @@ of instances having the kind <span class="extract"><span class="extract-syntax">
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticScenes::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticScenes::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticScenes::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticScenes::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">scene_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">scene_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Define SHOWSCENESTATUS function</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Define DETECTSCENECHANGE function</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -94,8 +94,8 @@ of instances having the kind <span class="extract"><span class="extract-syntax">
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">SHOWSCENESTATUS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">scene_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">scene_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ssf_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^scene_status_fn"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_call</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">ssf_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -122,8 +122,8 @@ whether any change in status has or has not occurred.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Again_l</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::reserve_label</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">".Again"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CScene_l</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::reserve_label</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">".CScene"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::place_label</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">Again_l</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">scene_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">scene_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scf_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^scene_change_fn"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -83,137 +83,148 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::go</span></a><span class="plain-syntax">, </span><span class="constant-syntax">NO_STAGE_ARG</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rule_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">property_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_column_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_column_usage_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">action_history_condition_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">past_tense_condition_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">use_option_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">verb_form_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">derived_kind_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">of_tree</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">items</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">tree_inventory_item</span></span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">module_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rule_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">property_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_column_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_column_usage_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">action_history_condition_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">past_tense_condition_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">use_option_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">verb_form_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">derived_kind_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::go</span><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rule_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">property_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">table_column_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">table_column_usage_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">action_history_condition_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">past_tense_condition_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">use_option_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_form_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">derived_kind_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterTree::traverse</span><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::visitor</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="function-syntax">Synoptic::new_inventory</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">of_tree</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">items</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">text_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="3-lt.html#SP1" class="function-link"><span class="function-syntax">SynopticText::alphabetise</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_nodes</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">response_nodes</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_response"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">rulebook_nodes</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rulebook"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">rule_nodes</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rule"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">activity_nodes</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_activity"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">action_nodes</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_action"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">property_nodes</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_property"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">relation_nodes</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_relation"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">table_nodes</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_table"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">table_column_nodes</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_table_column"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">table_column_usage_nodes</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_table_column_usage"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">action_history_condition_nodes</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_action_history_condition"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">past_tense_condition_nodes</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_past_condition"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">use_option_nodes</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_use_option"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">verb_form_nodes</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_verb_form"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">derived_kind_nodes</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_derived_kind"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">kind_nodes</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_kind"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">module_nodes</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_module"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">instance_nodes</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::add_inventory_need</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_instance"</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="3-act2.html#SP2" class="function-link"><span class="function-syntax">SynopticActions::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-act.html#SP1" class="function-link"><span class="function-syntax">SynopticActivities::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-chr.html#SP1" class="function-link"><span class="function-syntax">SynopticChronology::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ext.html#SP1" class="function-link"><span class="function-syntax">SynopticExtensions::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ins.html#SP1" class="function-link"><span class="function-syntax">SynopticInstances::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-knd.html#SP1" class="function-link"><span class="function-syntax">SynopticKinds::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="identifier-syntax">repository</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-mlt.html#SP1" class="function-link"><span class="function-syntax">SynopticMultimedia::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-prp.html#SP1" class="function-link"><span class="function-syntax">SynopticProperties::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">property_nodes</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-rlt.html#SP1" class="function-link"><span class="function-syntax">SynopticRelations::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-rsp.html#SP1" class="function-link"><span class="function-syntax">SynopticResponses::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-rls.html#SP1" class="function-link"><span class="function-syntax">SynopticRules::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="identifier-syntax">repository</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP1" class="function-link"><span class="function-syntax">SynopticScenes::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-tbl.html#SP1" class="function-link"><span class="function-syntax">SynopticTables::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-uo.html#SP1" class="function-link"><span class="function-syntax">SynopticUseOptions::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vrb.html#SP1" class="function-link"><span class="function-syntax">SynopticVerbs::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="identifier-syntax">repository</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">extension_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">scene_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">file_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">figure_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">sound_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">inv</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">node_list</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">required_ptype</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="function-syntax">Synoptic::add_inventory_need</span><span class="plain-syntax">(</span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pt</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax"> *</span><span class="identifier-syntax">item</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">item</span><span class="plain-syntax">-></span><span class="identifier-syntax">node_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">item</span><span class="plain-syntax">-></span><span class="identifier-syntax">required_ptype</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">of_tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">pt</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">item</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">items</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">item</span><span class="plain-syntax">-></span><span class="element-syntax">node_list</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::perform_inventory</span><span class="plain-syntax">(</span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">of_tree</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterTree::traverse</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::visitor</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">module_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">module_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">InterSymbolsTables::symbol_from_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"extension_id"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">extension_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">module_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">instance_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">instance_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_scene"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">scene_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">instance_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_file"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">file_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">instance_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_figure"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">figure_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">instance_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_sound"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">sound_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">instance_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::visitor</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">state</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">state</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">ID_IFLD</span><span class="plain-syntax">] == </span><span class="identifier-syntax">CONSTANT_IST</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_s</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::symbol_from_frame_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">DEFN_CONST_IFLD</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inter::Symbols::read_annotation</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">TEXT_LITERAL_IANN</span><span class="plain-syntax">) == </span><span class="constant-syntax">1</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">text_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">ID_IFLD</span><span class="plain-syntax">] == </span><span class="identifier-syntax">PACKAGE_IST</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::type</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_response"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">response_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rulebook"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rule"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">rule_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_activity"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_action"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_property"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">property_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_module"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">InterSymbolsTables::symbol_from_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"extension_id"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_relation"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_table"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_table_column_usage"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_column_usage_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_table_column"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_column_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_action_history_condition"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">action_history_condition_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_past_condition"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">past_tense_condition_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_use_option"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">use_option_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_verb_form"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">verb_form_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_kind"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_derived_kind"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">derived_kind_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_instance"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_scene"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_file"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_figure"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Metadata::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_sound"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax"> *</span><span class="identifier-syntax">item</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">item</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">items</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">item</span><span class="plain-syntax">-></span><span class="element-syntax">required_ptype</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">item</span><span class="plain-syntax">-></span><span class="element-syntax">node_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::go</span><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::new_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::perform_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="3-lt.html#SP1" class="function-link"><span class="function-syntax">SynopticText::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-act2.html#SP2" class="function-link"><span class="function-syntax">SynopticActions::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-act.html#SP1" class="function-link"><span class="function-syntax">SynopticActivities::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-chr.html#SP1" class="function-link"><span class="function-syntax">SynopticChronology::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ext.html#SP1" class="function-link"><span class="function-syntax">SynopticExtensions::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ins.html#SP1" class="function-link"><span class="function-syntax">SynopticInstances::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-knd.html#SP1" class="function-link"><span class="function-syntax">SynopticKinds::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="identifier-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-mlt.html#SP1" class="function-link"><span class="function-syntax">SynopticMultimedia::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-prp.html#SP1" class="function-link"><span class="function-syntax">SynopticProperties::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-rlt.html#SP1" class="function-link"><span class="function-syntax">SynopticRelations::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-rsp.html#SP1" class="function-link"><span class="function-syntax">SynopticResponses::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-rls.html#SP1" class="function-link"><span class="function-syntax">SynopticRules::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="identifier-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP1" class="function-link"><span class="function-syntax">SynopticScenes::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-tbl.html#SP1" class="function-link"><span class="function-syntax">SynopticTables::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-uo.html#SP1" class="function-link"><span class="function-syntax">SynopticUseOptions::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vrb.html#SP1" class="function-link"><span class="function-syntax">SynopticVerbs::compile</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="identifier-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure tree_inventory is accessed in 3/ext, 3/lt, 3/rsp, 3/rls, 3/act, 3/act2, 3/ins, 3/knd, 3/prp, 3/rlt, 3/tbl, 3/chr, 3/scn, 3/mlt, 3/uo, 3/vrb and here.</li><li>The structure tree_inventory_item is private to this section.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
|
|
@ -81,27 +81,27 @@ of packages of type <span class="extract"><span class="extract-syntax">_table</s
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticTables::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticTables::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticTables::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticTables::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">table_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">table_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">table_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">table_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"table_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_column_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_column_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_column_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_column_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">table_column_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">table_column_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">table_column_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">table_column_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"table_column_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> + </span><span class="constant-syntax">100</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_column_usage_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_column_usage_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_column_usage_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_column_usage_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">table_column_usage_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">table_column_usage_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">table_column_usage_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">table_column_usage_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ID</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"column_identity"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">id_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ID</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">] == </span><span class="identifier-syntax">ALIAS_IVAL</span><span class="plain-syntax">)</span>
|
||||
|
@ -125,8 +125,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_table</s
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">TABLEOFTABLES_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">THEEMPTYTABLE_HL</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">table_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">table_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">value_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^value"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -160,8 +160,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_table</s
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">table_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">table_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">value_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^value"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">printed_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^printed_name"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">CASE_BIP</span><span class="plain-syntax">);</span>
|
||||
|
@ -208,8 +208,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_table</s
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_column_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_column_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">table_column_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">table_column_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tc_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^column_kind"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">CASE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
|
@ -241,8 +241,8 @@ of packages of type <span class="extract"><span class="extract-syntax">_table</s
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_iname_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">BYTEARRAY_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">hwm</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_column_usage_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_column_usage_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">table_column_usage_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">table_column_usage_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_optional_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"column_blanks"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">D</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = </span><span class="identifier-syntax">hwm</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -77,11 +77,11 @@ of packages of type <span class="extract"><span class="extract-syntax">_use_opti
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticUseOptions::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticUseOptions::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">use_option_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">use_option_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">use_option_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">use_option_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticUseOptions::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticUseOptions::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">use_option_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">use_option_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">use_option_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">use_option_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::get_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"use_option_id"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -97,7 +97,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_use_opti
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">NO_USE_OPTIONS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">use_option_nodes</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">use_option_nodes</span><span class="plain-syntax">)));</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-uo.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_2" class="paragraph-anchor"></a><b>§1.2. </b>A relatively late addition to the design of use options was to make them
|
||||
|
@ -113,8 +113,8 @@ name of a given use option.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">TESTUSEOPTION_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">UO_s</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::local</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"UO"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">use_option_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">use_option_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">use_option_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">use_option_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">set</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^active"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">set</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
|
@ -147,8 +147,8 @@ name of a given use option.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">UO_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">use_option_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">use_option_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">use_option_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">use_option_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">printed_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_textual</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^printed_name"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">CASE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -80,9 +80,9 @@ of instances having the kind <span class="extract"><span class="extract-syntax">
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticVerbs::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticVerbs::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">verb_form_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">verb_form_nodes</span><span class="plain-syntax">, </span><a href="3-vrb.html#SP1" class="function-link"><span class="function-syntax">SynopticVerbs::form_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticVerbs::compile</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticVerbs::compile</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">verb_form_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">verb_form_nodes</span><span class="plain-syntax">, </span><a href="3-vrb.html#SP1" class="function-link"><span class="function-syntax">SynopticVerbs::form_order</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vrb.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Define TABLEOFVERBS array</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -115,8 +115,8 @@ of instances having the kind <span class="extract"><span class="extract-syntax">
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">TABLEOFVERBS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">verb_form_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">verb_form_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="function-syntax"><TreeLists::len(inv-></span><span class="element-syntax">verb_form_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-></span><span class="element-syntax">verb_form_nodes</span><span class="plain-syntax">-></span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^verb_value"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
|
@ -318,7 +318,7 @@ so on. Those absolute basics are made here.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTTables::compile_table_metadata</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTTables::compile_table_column_metadata</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTKinds::compile_mkdef_functions</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTEquations::compile_identifiers</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTEquations::compile</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">ImperativeDefinitions::compile_first_block</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTRules::rulebook_var_creators</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTRules::compile_rulebooks</span><span class="plain-syntax">)</span>
|
||||
|
@ -326,7 +326,8 @@ so on. Those absolute basics are made here.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTInstances::compile_metadata</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTProperties::compile_metadata</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTActivities::compile</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTVerbs::ConjugateVerb</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTVerbs::compile_conjugations</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTVerbs::compile_forms</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">CompletionModule::compile</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">debugging</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">InternalTests::InternalTestCases_routine</span><span class="plain-syntax">)</span>
|
||||
|
|
|
@ -270,7 +270,7 @@ kinds of value:
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_of_constant</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_verb</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::to_verb_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Emit::holster_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTVerbs::form_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Emit::holster_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTVerbs::form_fn_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_of_constant</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_response</span><span class="plain-syntax">)) {</span>
|
||||
|
|
|
@ -125,7 +125,7 @@ specified by <span class="extract"><span class="extract-syntax">W</span></span>,
|
|||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cste.html#SP3_3" class="named-paragraph-link"><span class="named-paragraph">Identify the symbols in the equation with local variables</span><span class="named-paragraph-number">3.3</span></a></span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="string-syntax">"Solving %n for '$w'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">eqn</span><span class="plain-syntax">-></span><span class="identifier-syntax">eqn_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">to_solve</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="string-syntax">"Solving %n for '$w'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">eqn</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="identifier-syntax">eqn_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">to_solve</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::comment</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="5-cste.html#SP4" class="function-link"><span class="function-syntax">EquationSolver::compile_enode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">eqn</span><span class="plain-syntax">, </span><span class="identifier-syntax">eqn</span><span class="plain-syntax">-></span><span class="identifier-syntax">parsed_equation</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -941,7 +941,7 @@ the source text in the application.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Index::link</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Index::link</span></span>:<br/>Lexicon Index - <a href="2-li.html#SP7_11_2">§7.11.2</a>, <a href="2-li.html#SP8">§8</a><br/>Index Physical World - <a href="2-ipw.html#SP3_5">§3.5</a>, <a href="2-ipw.html#SP3_8">§3.8</a>, <a href="2-ipw.html#SP4">§4</a><br/>Kinds Index - <a href="2-ki.html#SP6">§6</a><br/>Index Extensions - <a href="2-ie.html#SP1">§1</a><br/>Instances - <a href="2-ins.html#SP5">§5</a><br/>Adjectives - <a href="2-adj.html#SP1">§1</a><br/>Variables - <a href="2-vrb.html#SP3">§3</a><br/>Inferences - <a href="2-inf.html#SP3">§3</a><br/>Rules - <a href="2-rls.html#SP2_5">§2.5</a>, <a href="2-rls.html#SP2_7">§2.7</a>, <a href="2-rls.html#SP7_1">§7.1</a>, <a href="2-rls.html#SP9">§9</a>, <a href="2-rls.html#SP10_1">§10.1</a>, <a href="2-rls.html#SP10_2">§10.2</a><br/>Activities - <a href="2-act.html#SP2">§2</a><br/>Phrasebook Index - <a href="2-pi.html#SP1_3">§1.3</a><br/>Figures - <a href="3-fgr.html#SP1">§1</a><br/>Sound Effects - <a href="3-se.html#SP1">§1</a><br/>External Files - <a href="3-ef.html#SP1">§1</a><br/>Spatial - <a href="3-spt.html#SP4">§4</a><br/>Scenes - <a href="3-scn.html#SP1_5_1_1">§1.5.1.1</a>, <a href="3-scn.html#SP1_5_1_4_2">§1.5.1.4.2</a>, <a href="3-scn.html#SP1_5_1_4_3">§1.5.1.4.3</a><br/>Actions - <a href="3-act.html#SP1">§1</a><br/>Commands Index - <a href="3-ci.html#SP6">§6</a>, <a href="3-ci.html#SP7">§7</a>, <a href="3-ci.html#SP10">§10</a>, <a href="3-ci.html#SP11">§11</a><br/>Spatial Map - <a href="4-sm.html#SP44">§44</a><br/>HTML Map - <a href="4-hm.html#SP12">§12</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">wn</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Index::link</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Index::link</span></span>:<br/>Lexicon Index - <a href="2-li.html#SP7_11_2">§7.11.2</a>, <a href="2-li.html#SP8">§8</a>, <a href="2-li.html#SP10">§10</a><br/>Index Physical World - <a href="2-ipw.html#SP3_5">§3.5</a>, <a href="2-ipw.html#SP3_8">§3.8</a>, <a href="2-ipw.html#SP4">§4</a><br/>Kinds Index - <a href="2-ki.html#SP6">§6</a><br/>Index Extensions - <a href="2-ie.html#SP1">§1</a><br/>Instances - <a href="2-ins.html#SP5">§5</a><br/>Adjectives - <a href="2-adj.html#SP1">§1</a><br/>Variables - <a href="2-vrb.html#SP3">§3</a><br/>Inferences - <a href="2-inf.html#SP3">§3</a><br/>Rules - <a href="2-rls.html#SP2_5">§2.5</a>, <a href="2-rls.html#SP2_7">§2.7</a>, <a href="2-rls.html#SP7_1">§7.1</a>, <a href="2-rls.html#SP9">§9</a>, <a href="2-rls.html#SP10_1">§10.1</a>, <a href="2-rls.html#SP10_2">§10.2</a><br/>Activities - <a href="2-act.html#SP2">§2</a><br/>Phrasebook Index - <a href="2-pi.html#SP1_3">§1.3</a><br/>Figures - <a href="3-fgr.html#SP1">§1</a><br/>Sound Effects - <a href="3-se.html#SP1">§1</a><br/>External Files - <a href="3-ef.html#SP1">§1</a><br/>Spatial - <a href="3-spt.html#SP4">§4</a><br/>Scenes - <a href="3-scn.html#SP1_5_1_1">§1.5.1.1</a>, <a href="3-scn.html#SP1_5_1_4_2">§1.5.1.4.2</a>, <a href="3-scn.html#SP1_5_1_4_3">§1.5.1.4.3</a><br/>Actions - <a href="3-act.html#SP1">§1</a><br/>Commands Index - <a href="3-ci.html#SP6">§6</a>, <a href="3-ci.html#SP7">§7</a>, <a href="3-ci.html#SP10">§10</a>, <a href="3-ci.html#SP11">§11</a><br/>Spatial Map - <a href="4-sm.html#SP44">§44</a><br/>HTML Map - <a href="4-hm.html#SP12">§12</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">wn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link_to_location</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Lexer::word_location</span><span class="plain-syntax">(</span><span class="identifier-syntax">wn</span><span class="plain-syntax">), </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
|
|
@ -72,7 +72,7 @@ function togglePopup(material_id) {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">index</a></li><li><a href="index.html#2">Chapter 2: Indexing</a></li><li><b>Lexicon Index</b></li></ul></div>
|
||||
<p class="purpose">To construct the Lexicon portion of the Phrasebook page of the Index, which gives brief definitions and references for nouns, adjectives and verbs used in source text for the current project.</p>
|
||||
|
||||
<ul class="toc"><li><a href="2-li.html#SP7">§7. Producing the lexicon</a></li><li><a href="2-li.html#SP7_2">§7.2. Stocking the lexicon</a></li><li><a href="2-li.html#SP7_8">§7.8. Processing the lexicon</a></li><li><a href="2-li.html#SP7_10">§7.10. Printing the lexicon out in HTML format</a></li><li><a href="2-li.html#SP8">§8. The table of verbs</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="2-li.html#SP7">§7. Producing the lexicon</a></li><li><a href="2-li.html#SP7_2">§7.2. Stocking the lexicon</a></li><li><a href="2-li.html#SP7_8">§7.8. Processing the lexicon</a></li><li><a href="2-li.html#SP7_10">§7.10. Printing the lexicon out in HTML format</a></li><li><a href="2-li.html#SP8">§8. The table of verbs</a></li><li><a href="2-li.html#SP10">§10. Index tabulation</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>The lexicon is the part of the Index which gives an alphabetised list of
|
||||
adjectives, nouns, verbs and other words which can be used in descriptions
|
||||
|
@ -620,12 +620,12 @@ of value.
|
|||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">lex</span><span class="plain-syntax">-></span><span class="element-syntax">wording_of_entry</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">lex</span><span class="plain-syntax">-></span><span class="element-syntax">part_of_speech</span><span class="plain-syntax"> == </span><span class="constant-syntax">AVERB_LEXE</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" ... <i>auxiliary verb</i>"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">lex</span><span class="plain-syntax">-></span><span class="element-syntax">part_of_speech</span><span class="plain-syntax"> == </span><span class="constant-syntax">MVERB_LEXE</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" ... for saying only"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTVerbs::tabulate_meaning</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">lex</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="2-li.html#SP10" class="function-link"><span class="function-syntax">IndexLexicon::tabulate_meanings</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">lex</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTVerbs::tabulate</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">lex</span><span class="plain-syntax">, </span><span class="identifier-syntax">IS_TENSE</span><span class="plain-syntax">, </span><span class="string-syntax">"present"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTVerbs::tabulate</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">lex</span><span class="plain-syntax">, </span><span class="identifier-syntax">WAS_TENSE</span><span class="plain-syntax">, </span><span class="string-syntax">"past"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTVerbs::tabulate</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">lex</span><span class="plain-syntax">, </span><span class="identifier-syntax">HASBEEN_TENSE</span><span class="plain-syntax">, </span><span class="string-syntax">"present perfect"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTVerbs::tabulate</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">lex</span><span class="plain-syntax">, </span><span class="identifier-syntax">HADBEEN_TENSE</span><span class="plain-syntax">, </span><span class="string-syntax">"past perfect"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-li.html#SP10" class="function-link"><span class="function-syntax">IndexLexicon::tabulate_verbs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">lex</span><span class="plain-syntax">, </span><span class="identifier-syntax">IS_TENSE</span><span class="plain-syntax">, </span><span class="string-syntax">"present"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-li.html#SP10" class="function-link"><span class="function-syntax">IndexLexicon::tabulate_verbs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">lex</span><span class="plain-syntax">, </span><span class="identifier-syntax">WAS_TENSE</span><span class="plain-syntax">, </span><span class="string-syntax">"past"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-li.html#SP10" class="function-link"><span class="function-syntax">IndexLexicon::tabulate_verbs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">lex</span><span class="plain-syntax">, </span><span class="identifier-syntax">HASBEEN_TENSE</span><span class="plain-syntax">, </span><span class="string-syntax">"present perfect"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-li.html#SP10" class="function-link"><span class="function-syntax">IndexLexicon::tabulate_verbs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">lex</span><span class="plain-syntax">, </span><span class="identifier-syntax">HADBEEN_TENSE</span><span class="plain-syntax">, </span><span class="string-syntax">"past perfect"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">entry_text</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -653,6 +653,51 @@ be able to print out a table of just those verbs created in that extension.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">verb_count</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. Index tabulation. </b>The following produces the table of verbs in the Phrasebook Index page.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IndexLexicon::tabulate_verbs</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">IndexLexicon::tabulate_verbs</span></span>:<br/><a href="2-li.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">index_lexicon_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lex</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">tense</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tensename</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vu</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">f</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_usage</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">vu</span><span class="plain-syntax">-></span><span class="identifier-syntax">vu_lex_entry</span><span class="plain-syntax"> == </span><span class="identifier-syntax">lex</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">VerbUsages::is_used_negatively</span><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> && (</span><span class="identifier-syntax">VerbUsages::get_tense_used</span><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">) == </span><span class="identifier-syntax">tense</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vocabulary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lastword</span><span class="plain-syntax"> = </span><span class="identifier-syntax">WordAssemblages::last_word</span><span class="plain-syntax">(&(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">-></span><span class="identifier-syntax">vu_text</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">f</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::open_indented_p</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="string-syntax">"tight"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>%s:</i>&nbsp;"</span><span class="plain-syntax">, </span><span class="identifier-syntax">tensename</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"; "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wide::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">Vocabulary::get_exemplar</span><span class="plain-syntax">(</span><span class="identifier-syntax">lastword</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">), </span><span class="identifier-syntax">L</span><span class="string-syntax">"by"</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"B "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"A "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WordAssemblages::index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, &(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">-></span><span class="identifier-syntax">vu_text</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wide::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">Vocabulary::get_exemplar</span><span class="plain-syntax">(</span><span class="identifier-syntax">lastword</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">), </span><span class="identifier-syntax">L</span><span class="string-syntax">"by"</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"A"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"B"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">f</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">f</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IndexLexicon::tabulate_meanings</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">IndexLexicon::tabulate_meanings</span></span>:<br/><a href="2-li.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">index_lexicon_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lex</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vu</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_usage</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vu</span><span class="plain-syntax">-></span><span class="identifier-syntax">vu_lex_entry</span><span class="plain-syntax"> == </span><span class="identifier-syntax">lex</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vu</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_vu_created</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_vu_created</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VerbMeanings::get_regular_meaning_of_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">Verbs::base_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">VerbUsages::get_verb</span><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bp</span><span class="plain-syntax">) </span><span class="identifier-syntax">RTRelations::index_for_verbs</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">bp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="identifier-syntax">preposition</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prep</span><span class="plain-syntax">-></span><span class="identifier-syntax">prep_lex_entry</span><span class="plain-syntax"> == </span><span class="identifier-syntax">lex</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prep</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_prep_created</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">prep</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_prep_created</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VerbMeanings::get_regular_meaning_of_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">Verbs::find_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">copular_verb</span><span class="plain-syntax">, </span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bp</span><span class="plain-syntax">) </span><span class="identifier-syntax">RTRelations::index_for_verbs</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">bp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-dr.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresscurrent">li</li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-ipw.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
|
|
@ -147,7 +147,7 @@ those once again become word boundaries.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="function-syntax">Inflect::first_word</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Inflect::first_word</span></span>:<br/>Lexical Clusters - <a href="3-lc2.html#SP4_1_1">§4.1.1</a><br/>Verb Conjugation - <a href="3-vc.html#SP8_2_1">§8.2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">wa</span><span class="plain-syntax">, </span><span class="identifier-syntax">match_avinue</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="function-syntax">Inflect::first_word</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Inflect::first_word</span></span>:<br/>Lexical Clusters - <a href="3-lc2.html#SP4_1_1">§4.1.1</a><br/>Verb Conjugation - <a href="3-vc.html#SP7_2_1">§7.2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">wa</span><span class="plain-syntax">, </span><span class="identifier-syntax">match_avinue</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vocabulary_entry</span><span class="plain-syntax"> **</span><span class="identifier-syntax">words</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">no_words</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WordAssemblages::as_array</span><span class="plain-syntax">(&</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, &</span><span class="identifier-syntax">words</span><span class="plain-syntax">, &</span><span class="identifier-syntax">no_words</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -73,7 +73,7 @@ function togglePopup(material_id) {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Services</a></li><li><a href="index.html">inflections</a></li><li><a href="index.html#3">Chapter 3: Declension and Conjugation</a></li><li><b>Verb Conjugation</b></li></ul></div>
|
||||
<p class="purpose">Conjugating verbs into the many different forms they can take.</p>
|
||||
|
||||
<ul class="toc"><li><a href="3-vc.html#SP2">§2. Finding</a></li><li><a href="3-vc.html#SP6">§6. Making conjugations</a></li><li><a href="3-vc.html#SP8">§8. Follow instructions</a></li><li><a href="3-vc.html#SP9">§9. Merge verb material</a></li><li><a href="3-vc.html#SP12">§12. Parsing verb form numbers</a></li><li><a href="3-vc.html#SP13">§13. Parsing tense and sense indicators</a></li><li><a href="3-vc.html#SP14">§14. Parsing utilities</a></li><li><a href="3-vc.html#SP16">§16. Errors</a></li><li><a href="3-vc.html#SP17">§17. Testing</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="3-vc.html#SP2">§2. Finding</a></li><li><a href="3-vc.html#SP6">§6. Making conjugations</a></li><li><a href="3-vc.html#SP7">§7. Follow instructions</a></li><li><a href="3-vc.html#SP8">§8. Merge verb material</a></li><li><a href="3-vc.html#SP11">§11. Parsing verb form numbers</a></li><li><a href="3-vc.html#SP12">§12. Parsing tense and sense indicators</a></li><li><a href="3-vc.html#SP13">§13. Parsing utilities</a></li><li><a href="3-vc.html#SP15">§15. Errors</a></li><li><a href="3-vc.html#SP16">§16. Testing</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>We will need to turn a base form of a verb — in English, this is always the
|
||||
infinitive — into up to 123 variants; we manage this with quite an extensive
|
||||
|
@ -94,9 +94,8 @@ English it looks wasteful, since so many forms are the same, but for French
|
|||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">LINGUISTICS_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc_conjugates</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">where_vc_created</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">VC_COMPILATION_LINGUISTICS_CALLBACK</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">verb_conjugation_compilation_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">auxiliary_only</span><span class="plain-syntax">; </span><span class="comment-syntax"> used only as an auxiliary, e.g. the "have" in "I have gone"</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">instance_of_verb</span><span class="plain-syntax">; </span><span class="comment-syntax"> defines an instance of kind "verb" at run-time</span>
|
||||
|
@ -114,7 +113,7 @@ English it looks wasteful, since so many forms are the same, but for French
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="function-syntax">Conjugation::find_by_infinitive</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Conjugation::find_by_infinitive</span></span>:<br/><a href="3-vc.html#SP9_4">§9.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">infinitive</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="function-syntax">Conjugation::find_by_infinitive</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Conjugation::find_by_infinitive</span></span>:<br/><a href="3-vc.html#SP8_4">§8.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">infinitive</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="reserved-syntax">verb_conjugation</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">WordAssemblages::eq</span><span class="plain-syntax">(&</span><span class="identifier-syntax">infinitive</span><span class="plain-syntax">, &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">infinitive</span><span class="plain-syntax">)))</span>
|
||||
|
@ -168,7 +167,7 @@ English it looks wasteful, since so many forms are the same, but for French
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::write</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Conjugation::write</span></span>:<br/><a href="3-vc.html#SP17">§17</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::write</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Conjugation::write</span></span>:<br/><a href="3-vc.html#SP16">§16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"Infinitive: %A / Present participle: %A / Past participle: %A^"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">infinitive</span><span class="plain-syntax">), &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">present_participle</span><span class="plain-syntax">), &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">past_participle</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">voice_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
|
||||
|
@ -205,7 +204,7 @@ English it looks wasteful, since so many forms are the same, but for French
|
|||
Inflections", which explains the format in full.
|
||||
</p>
|
||||
|
||||
<p class="commentary">The crucial early step here is <a href="3-vc.html#SP8" class="internal">Conjugation::follow_instructions</a>, which has
|
||||
<p class="commentary">The crucial early step here is <a href="3-vc.html#SP7" class="internal">Conjugation::follow_instructions</a>, which has
|
||||
two tasks to perform: it works out the numbered verb forms, and it chooses
|
||||
which tabulation will be used. Verb form number 0 is always the base text,
|
||||
and subsequent numbers include some which are universal across all verbs
|
||||
|
@ -214,7 +213,7 @@ conjugation to another.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="function-syntax">Conjugation::conjugate</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Conjugation::conjugate</span></span>:<br/><a href="3-vc.html#SP9_4">§9.4</a>, <a href="3-vc.html#SP17">§17</a>, <a href="3-vc.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">base_text</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="function-syntax">Conjugation::conjugate</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Conjugation::conjugate</span></span>:<br/><a href="3-vc.html#SP8_4">§8.4</a>, <a href="3-vc.html#SP16">§16</a>, <a href="3-vc.html#SP17">§17</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">base_text</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">NATURAL_LANGUAGE_WORDS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nl</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-vc.html#SP6" class="function-link"><span class="function-syntax">Conjugation::conjugate_with_overrides</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">base_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">nl</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -230,7 +229,7 @@ conjugation to another.
|
|||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">aux_len</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">avo_flag</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">niv_flag</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">nonterminal</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tabulation</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP8" class="function-link"><span class="function-syntax">Conjugation::follow_instructions</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">, &</span><span class="identifier-syntax">n</span><span class="plain-syntax">, &</span><span class="identifier-syntax">aux_len</span><span class="plain-syntax">, &</span><span class="identifier-syntax">avo_flag</span><span class="plain-syntax">, &</span><span class="identifier-syntax">niv_flag</span><span class="plain-syntax">, </span><span class="identifier-syntax">nl</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP7" class="function-link"><span class="function-syntax">Conjugation::follow_instructions</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">, &</span><span class="identifier-syntax">n</span><span class="plain-syntax">, &</span><span class="identifier-syntax">aux_len</span><span class="plain-syntax">, &</span><span class="identifier-syntax">avo_flag</span><span class="plain-syntax">, &</span><span class="identifier-syntax">niv_flag</span><span class="plain-syntax">, </span><span class="identifier-syntax">nl</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP6_2" class="named-paragraph-link"><span class="named-paragraph">Override any verb forms with supplied irregularities</span><span class="named-paragraph-number">6.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP6_3" class="named-paragraph-link"><span class="named-paragraph">Use the verb forms and the tabulation to make the conjugation</span><span class="named-paragraph-number">6.3</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -266,8 +265,7 @@ anybody else try this one on.)
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">k</span><span class="plain-syntax">=1; </span><span class="identifier-syntax">k</span><span class="plain-syntax"><</span><span class="identifier-syntax">no_overrides</span><span class="plain-syntax">; </span><span class="identifier-syntax">k</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax">=1; </span><span class="identifier-syntax">k</span><span class="plain-syntax"><</span><span class="identifier-syntax">no_overrides</span><span class="plain-syntax">; </span><span class="identifier-syntax">k</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">WordAssemblages::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">overrides</span><span class="plain-syntax">[</span><span class="identifier-syntax">k</span><span class="plain-syntax">]))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">[</span><span class="identifier-syntax">k</span><span class="plain-syntax">] = </span><span class="identifier-syntax">overrides</span><span class="plain-syntax">[</span><span class="identifier-syntax">k</span><span class="plain-syntax">];</span>
|
||||
</pre>
|
||||
|
@ -286,9 +284,8 @@ anybody else try this one on.)
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">defined_in</span><span class="plain-syntax"> = </span><span class="identifier-syntax">nl</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">auxiliary_only</span><span class="plain-syntax"> = </span><span class="identifier-syntax">avo_flag</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">instance_of_verb</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">niv_flag</span><span class="plain-syntax">)?</span><span class="identifier-syntax">FALSE:TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">where_vc_created</span><span class="plain-syntax"> = </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">vc_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">VC_COMPILATION_LINGUISTICS_CALLBACK</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VC_COMPILATION_LINGUISTICS_CALLBACK</span><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP6_3_1" class="named-paragraph-link"><span class="named-paragraph">Start by blanking out all the passive and active slots</span><span class="named-paragraph-number">6.3.1</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -339,7 +336,7 @@ rest. (The selector is always just a single token.)
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">selector</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">selector</span><span class="plain-syntax">-></span><span class="identifier-syntax">ptoken_category</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FIXED_WORD_PTC</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">line</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP6_3_2_1" class="named-paragraph-link"><span class="named-paragraph">Apply the given tabulation line to the slots selected</span><span class="named-paragraph-number">6.3.2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="3-vc.html#SP16" class="function-link"><span class="function-syntax">Conjugation::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">base_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">tabulation</span><span class="plain-syntax">, </span><span class="identifier-syntax">pr</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="3-vc.html#SP15" class="function-link"><span class="function-syntax">Conjugation::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">base_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">tabulation</span><span class="plain-syntax">, </span><span class="identifier-syntax">pr</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"tabulation row doesn't consist of a selector and then text"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -355,7 +352,7 @@ rest. (The selector is always just a single token.)
|
|||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">set_tba</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">tabulations</span><span class="plain-syntax">[</span><span class="constant-syntax">PASSIVE_VOICE</span><span class="plain-syntax">].</span><span class="element-syntax">to_be_auxiliary</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP9" class="function-link"><span class="function-syntax">Conjugation::merge</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">line</span><span class="plain-syntax">, </span><span class="constant-syntax">POSITIVE_SENSE</span><span class="plain-syntax">, </span><span class="constant-syntax">IS_TENSE</span><span class="plain-syntax">, </span><span class="constant-syntax">FIRST_PERSON</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP8" class="function-link"><span class="function-syntax">Conjugation::merge</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">line</span><span class="plain-syntax">, </span><span class="constant-syntax">POSITIVE_SENSE</span><span class="plain-syntax">, </span><span class="constant-syntax">IS_TENSE</span><span class="plain-syntax">, </span><span class="constant-syntax">FIRST_PERSON</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">SINGULAR_NUMBER</span><span class="plain-syntax">, </span><span class="constant-syntax">MAX_FORM_TYPES</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">, </span><span class="identifier-syntax">nl</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">tense</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">tense</span><span class="plain-syntax"><</span><span class="constant-syntax">NO_KNOWN_TENSES</span><span class="plain-syntax">; </span><span class="identifier-syntax">tense</span><span class="plain-syntax">++)</span>
|
||||
|
@ -374,7 +371,7 @@ rest. (The selector is always just a single token.)
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">tabulations</span><span class="plain-syntax">[</span><span class="constant-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span><span class="element-syntax">vc_text</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">p</span><span class="plain-syntax">][</span><span class="identifier-syntax">n</span><span class="plain-syntax">] =</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP9" class="function-link"><span class="function-syntax">Conjugation::merge</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">line</span><span class="plain-syntax">, </span><span class="identifier-syntax">sense</span><span class="plain-syntax">, </span><span class="identifier-syntax">tense</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="constant-syntax">MAX_FORM_TYPES</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">, </span><span class="identifier-syntax">nl</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP8" class="function-link"><span class="function-syntax">Conjugation::merge</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">line</span><span class="plain-syntax">, </span><span class="identifier-syntax">sense</span><span class="plain-syntax">, </span><span class="identifier-syntax">tense</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="constant-syntax">MAX_FORM_TYPES</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">, </span><span class="identifier-syntax">nl</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">tabulations</span><span class="plain-syntax">[</span><span class="constant-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span><span class="element-syntax">modal_auxiliary_usage</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">p</span><span class="plain-syntax">][</span><span class="identifier-syntax">n</span><span class="plain-syntax">]));</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP6_3_2_1">§6.3.2.1</a>.</li></ul>
|
||||
|
@ -383,7 +380,7 @@ rest. (The selector is always just a single token.)
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">tabulations</span><span class="plain-syntax">[</span><span class="constant-syntax">PASSIVE_VOICE</span><span class="plain-syntax">].</span><span class="element-syntax">vc_text</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">p</span><span class="plain-syntax">][</span><span class="identifier-syntax">n</span><span class="plain-syntax">] =</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP9" class="function-link"><span class="function-syntax">Conjugation::merge</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">line</span><span class="plain-syntax">, </span><span class="identifier-syntax">sense</span><span class="plain-syntax">, </span><span class="identifier-syntax">tense</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="constant-syntax">MAX_FORM_TYPES</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">, </span><span class="identifier-syntax">nl</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP8" class="function-link"><span class="function-syntax">Conjugation::merge</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">line</span><span class="plain-syntax">, </span><span class="identifier-syntax">sense</span><span class="plain-syntax">, </span><span class="identifier-syntax">tense</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="constant-syntax">MAX_FORM_TYPES</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">, </span><span class="identifier-syntax">nl</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">tabulations</span><span class="plain-syntax">[</span><span class="constant-syntax">PASSIVE_VOICE</span><span class="plain-syntax">].</span><span class="element-syntax">modal_auxiliary_usage</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">p</span><span class="plain-syntax">][</span><span class="identifier-syntax">n</span><span class="plain-syntax">]));</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP6_3_2_1">§6.3.2.1</a>.</li></ul>
|
||||
|
@ -401,7 +398,7 @@ and negative senses.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">[0] == </span><span class="character-syntax">'a'</span><span class="plain-syntax">) </span><span class="identifier-syntax">active_set</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">[0] == </span><span class="character-syntax">'p'</span><span class="plain-syntax">) </span><span class="identifier-syntax">active_set</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">active_set</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NOT_APPLICABLE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP16" class="function-link"><span class="function-syntax">Conjugation::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">base_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">tabulation</span><span class="plain-syntax">, </span><span class="identifier-syntax">pr</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP15" class="function-link"><span class="function-syntax">Conjugation::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">base_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">tabulation</span><span class="plain-syntax">, </span><span class="identifier-syntax">pr</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"tabulation row doesn't begin with 'a' or 'p'"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Characters::isdigit</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">at</span><span class="plain-syntax">])) { </span><span class="identifier-syntax">tense_set</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">at</span><span class="plain-syntax">++]-</span><span class="character-syntax">'1'</span><span class="plain-syntax">; }</span>
|
||||
|
@ -412,42 +409,12 @@ and negative senses.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">at</span><span class="plain-syntax">] != </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"The selector here is: <%w>\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP16" class="function-link"><span class="function-syntax">Conjugation::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">base_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">tabulation</span><span class="plain-syntax">, </span><span class="identifier-syntax">pr</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP15" class="function-link"><span class="function-syntax">Conjugation::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">base_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">tabulation</span><span class="plain-syntax">, </span><span class="identifier-syntax">pr</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"unrecognised selector in tabulation row"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP6_3_2_1">§6.3.2.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b>This routine is really an interloper from <a href="../core-module/index.html" class="internal">core</a>. It provides the run-time
|
||||
values representing verbs in story files compiled by Inform.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">#</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Conjugation::conj_iname</span><span class="plain-syntax">(</span><span class="reserved-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">vc_iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">vc_conjugates</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Hierarchy::local_package_to</span><span class="plain-syntax">(</span><span class="identifier-syntax">MVERBS_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">where_vc_created</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ANT</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">ANT</span><span class="plain-syntax">, </span><span class="string-syntax">"%A (modal)"</span><span class="plain-syntax">, &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">tabulations</span><span class="plain-syntax">[</span><span class="constant-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span><span class="element-syntax">vc_text</span><span class="plain-syntax">[</span><span class="constant-syntax">IS_TENSE</span><span class="plain-syntax">][</span><span class="constant-syntax">POSITIVE_SENSE</span><span class="plain-syntax">][</span><span class="constant-syntax">THIRD_PERSON</span><span class="plain-syntax">]));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Hierarchy::apply_metadata</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">MVERB_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ANT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ANT</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">vc_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::make_iname_in</span><span class="plain-syntax">(</span><span class="identifier-syntax">MODAL_CONJUGATION_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTVerbs::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">vc_conjugates</span><span class="plain-syntax">, </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">where_vc_created</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ANT</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">ANT</span><span class="plain-syntax">, </span><span class="string-syntax">"to %A"</span><span class="plain-syntax">, &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">infinitive</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Hierarchy::apply_metadata</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">VERB_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ANT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ANT</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">vc_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::make_iname_in</span><span class="plain-syntax">(</span><span class="identifier-syntax">NONMODAL_CONJUGATION_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">vc_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="plain-syntax">#</span><span class="identifier-syntax">endif</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. Follow instructions. </b>That completes the top level of the routine, but it depended on two major
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. Follow instructions. </b>That completes the top level of the routine, but it depended on two major
|
||||
sub-steps: a preliminary pass called <span class="extract"><span class="extract-syntax">Conjugation::follow_instructions</span></span> and
|
||||
a routine to deal with the final results called <span class="extract"><span class="extract-syntax">Conjugation::merge</span></span>.
|
||||
</p>
|
||||
|
@ -469,18 +436,18 @@ participles and then chooses the tabulation <span class="extract"><span class="e
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">nonterminal</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tabulation_nt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">conjugation_nt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">highest_form_written</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">aux_len</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; *</span><span class="identifier-syntax">avo_flag</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">; *</span><span class="identifier-syntax">niv_flag</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP8_1" class="named-paragraph-link"><span class="named-paragraph">Pattern match on the base text to decide which conjugation to use</span><span class="named-paragraph-number">8.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Pattern match on the base text to decide which conjugation to use</span><span class="named-paragraph-number">7.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">conjugation_nt</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP16" class="function-link"><span class="function-syntax">Conjugation::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">instructions_nt</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP15" class="function-link"><span class="function-syntax">Conjugation::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">instructions_nt</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"the instructions here failed to choose a conjugation"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP8_2" class="named-paragraph-link"><span class="named-paragraph">Process the conjugation and determine the tabulation</span><span class="named-paragraph-number">8.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP7_2" class="named-paragraph-link"><span class="named-paragraph">Process the conjugation and determine the tabulation</span><span class="named-paragraph-number">7.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tabulation_nt</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP16" class="function-link"><span class="function-syntax">Conjugation::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">conjugation_nt</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP15" class="function-link"><span class="function-syntax">Conjugation::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">conjugation_nt</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"the conjugation here failed to choose a tabulation"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">tabulation_nt</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8_1" class="paragraph-anchor"></a><b>§8.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Pattern match on the base text to decide which conjugation to use</span><span class="named-paragraph-number">8.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP7_1" class="paragraph-anchor"></a><b>§7.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Pattern match on the base text to decide which conjugation to use</span><span class="named-paragraph-number">7.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -493,13 +460,13 @@ participles and then chooses the tabulation <span class="extract"><span class="e
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">nl</span><span class="plain-syntax"> == </span><span class="identifier-syntax">pl</span><span class="plain-syntax">-></span><span class="identifier-syntax">definition_language</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">production</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pr</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pl</span><span class="plain-syntax">-></span><span class="identifier-syntax">first_pr</span><span class="plain-syntax">; </span><span class="identifier-syntax">pr</span><span class="plain-syntax">; </span><span class="identifier-syntax">pr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pr</span><span class="plain-syntax">-></span><span class="identifier-syntax">next_pr</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP8_1_1" class="named-paragraph-link"><span class="named-paragraph">Try to match the base text against this production</span><span class="named-paragraph-number">8.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP7_1_1" class="named-paragraph-link"><span class="named-paragraph">Try to match the base text against this production</span><span class="named-paragraph-number">7.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP8">§8</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP8_1_1" class="paragraph-anchor"></a><b>§8.1.1. </b>Each production in this language's <span class="extract"><span class="extract-syntax"><verb-conjugation-instructions></span></span> grammar
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP7">§7</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7_1_1" class="paragraph-anchor"></a><b>§7.1.1. </b>Each production in this language's <span class="extract"><span class="extract-syntax"><verb-conjugation-instructions></span></span> grammar
|
||||
consists of a (possibly empty) pattern to match, followed by the name of a
|
||||
nonterminal to use as the conjugation if it matches. For example, in
|
||||
</p>
|
||||
|
@ -520,7 +487,7 @@ infinitive" form is set to the part matched by <span class="extract"><span class
|
|||
"be able to see" matches with auxiliary infinitive "see".
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Try to match the base text against this production</span><span class="named-paragraph-number">8.1.1</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Try to match the base text against this production</span><span class="named-paragraph-number">7.1.1</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -530,7 +497,7 @@ infinitive" form is set to the part matched by <span class="extract"><span class
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">len</span><span class="plain-syntax"> >= </span><span class="constant-syntax">1</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">last</span><span class="plain-syntax">-></span><span class="identifier-syntax">ptoken_category</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NONTERMINAL_PTC</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">conjugation_nt</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) { </span><span class="comment-syntax"> i.e., if we have not yet chosen a conjugation</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">failed_to_match</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">wildcard_from</span><span class="plain-syntax"> = -1;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP8_1_1_1" class="named-paragraph-link"><span class="named-paragraph">Try to match the base text against the pattern part of the production</span><span class="named-paragraph-number">8.1.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP7_1_1_1" class="named-paragraph-link"><span class="named-paragraph">Try to match the base text against the pattern part of the production</span><span class="named-paragraph-number">7.1.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">failed_to_match</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">conjugation_nt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">last</span><span class="plain-syntax">-></span><span class="identifier-syntax">nt_pt</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">[</span><span class="constant-syntax">ADJOINT_INFINITIVE_FORM_TYPE</span><span class="plain-syntax">] = </span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">[</span><span class="constant-syntax">BASE_FORM_TYPE</span><span class="plain-syntax">];</span>
|
||||
|
@ -542,11 +509,11 @@ infinitive" form is set to the part matched by <span class="extract"><span class
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">malformed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">malformed</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP16" class="function-link"><span class="function-syntax">Conjugation::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">[</span><span class="constant-syntax">BASE_FORM_TYPE</span><span class="plain-syntax">], </span><span class="function-syntax"><verb-conjugation-instructions></span><span class="plain-syntax">, </span><span class="identifier-syntax">pr</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP15" class="function-link"><span class="function-syntax">Conjugation::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">[</span><span class="constant-syntax">BASE_FORM_TYPE</span><span class="plain-syntax">], </span><span class="function-syntax"><verb-conjugation-instructions></span><span class="plain-syntax">, </span><span class="identifier-syntax">pr</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"malformed line"</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP8_1">§8.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP8_1_1_1" class="paragraph-anchor"></a><b>§8.1.1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Try to match the base text against the pattern part of the production</span><span class="named-paragraph-number">8.1.1.1</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP7_1">§7.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7_1_1_1" class="paragraph-anchor"></a><b>§7.1.1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Try to match the base text against the pattern part of the production</span><span class="named-paragraph-number">7.1.1.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -554,7 +521,7 @@ infinitive" form is set to the part matched by <span class="extract"><span class
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pr</span><span class="plain-syntax">-></span><span class="identifier-syntax">first_pt</span><span class="plain-syntax">; ((</span><span class="identifier-syntax">pt</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">pt</span><span class="plain-syntax"> != </span><span class="identifier-syntax">last</span><span class="plain-syntax">)); </span><span class="identifier-syntax">pt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pt</span><span class="plain-syntax">-></span><span class="identifier-syntax">next_pt</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-></span><span class="identifier-syntax">ptoken_category</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FIXED_WORD_PTC</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">word_count</span><span class="plain-syntax"> < </span><span class="identifier-syntax">base_text_word_count</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="3-vc.html#SP15" class="function-link"><span class="function-syntax">Conjugation::compare_ve_with_tails</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">base_text_words</span><span class="plain-syntax">[</span><span class="identifier-syntax">word_count</span><span class="plain-syntax">], </span><span class="identifier-syntax">pt</span><span class="plain-syntax">-></span><span class="identifier-syntax">ve_pt</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> (</span><a href="3-vc.html#SP14" class="function-link"><span class="function-syntax">Conjugation::compare_ve_with_tails</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">base_text_words</span><span class="plain-syntax">[</span><span class="identifier-syntax">word_count</span><span class="plain-syntax">], </span><span class="identifier-syntax">pt</span><span class="plain-syntax">-></span><span class="identifier-syntax">ve_pt</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">word_count</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">failed_to_match</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-></span><span class="identifier-syntax">ptoken_category</span><span class="plain-syntax"> == </span><span class="identifier-syntax">MULTIPLE_WILDCARD_PTC</span><span class="plain-syntax">) {</span>
|
||||
|
@ -568,13 +535,13 @@ infinitive" form is set to the part matched by <span class="extract"><span class
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">wildcard_from</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP8_1_1">§8.1.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP8_2" class="paragraph-anchor"></a><b>§8.2. </b>In a conjugation, productions have two possible forms: either just a single
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP7_1_1">§7.1.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7_2" class="paragraph-anchor"></a><b>§7.2. </b>In a conjugation, productions have two possible forms: either just a single
|
||||
nonterminal, which usually identifies the tabulation, or a number followed by some
|
||||
tokens.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Process the conjugation and determine the tabulation</span><span class="named-paragraph-number">8.2</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Process the conjugation and determine the tabulation</span><span class="named-paragraph-number">7.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -598,19 +565,19 @@ tokens.
|
|||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">malformed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span><span class="plain-syntax">:</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP8_2_1" class="named-paragraph-link"><span class="named-paragraph">Set a verb form from the conjugation line</span><span class="named-paragraph-number">8.2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP7_2_1" class="named-paragraph-link"><span class="named-paragraph">Set a verb form from the conjugation line</span><span class="named-paragraph-number">7.2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">default:</span><span class="plain-syntax"> </span><span class="identifier-syntax">malformed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">malformed</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP16" class="function-link"><span class="function-syntax">Conjugation::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">[</span><span class="constant-syntax">BASE_FORM_TYPE</span><span class="plain-syntax">], </span><span class="identifier-syntax">conjugation_nt</span><span class="plain-syntax">, </span><span class="identifier-syntax">pr</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP15" class="function-link"><span class="function-syntax">Conjugation::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">[</span><span class="constant-syntax">BASE_FORM_TYPE</span><span class="plain-syntax">], </span><span class="identifier-syntax">conjugation_nt</span><span class="plain-syntax">, </span><span class="identifier-syntax">pr</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"malformed line"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP8">§8</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP8_2_1" class="paragraph-anchor"></a><b>§8.2.1. </b>So here we check the more interesting case. The number identifies which
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP7">§7</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7_2_1" class="paragraph-anchor"></a><b>§7.2.1. </b>So here we check the more interesting case. The number identifies which
|
||||
verb form to set, and the token which follows it provides the content. For
|
||||
example:
|
||||
</p>
|
||||
|
@ -620,13 +587,13 @@ example:
|
|||
<span class="extract"><span class="extract-syntax">3 <en-trie-past-participle></span></span> run this trie on the base text and take the result
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Set a verb form from the conjugation line</span><span class="named-paragraph-number">8.2.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Set a verb form from the conjugation line</span><span class="named-paragraph-number">7.2.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ptoken</span><span class="plain-syntax"> *</span><span class="identifier-syntax">number_token</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pr</span><span class="plain-syntax">-></span><span class="identifier-syntax">first_pt</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ptoken</span><span class="plain-syntax"> *</span><span class="identifier-syntax">content_token</span><span class="plain-syntax"> = </span><span class="identifier-syntax">number_token</span><span class="plain-syntax">-></span><span class="identifier-syntax">next_pt</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax"> = </span><a href="3-vc.html#SP12" class="function-link"><span class="function-syntax">Conjugation::ptoken_to_verb_form_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">number_token</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax"> = </span><a href="3-vc.html#SP11" class="function-link"><span class="function-syntax">Conjugation::ptoken_to_verb_form_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">number_token</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">n</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">n</span><span class="plain-syntax"> > *</span><span class="identifier-syntax">highest_form_written</span><span class="plain-syntax">) { *</span><span class="identifier-syntax">highest_form_written</span><span class="plain-syntax"> = </span><span class="identifier-syntax">n</span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">content_token</span><span class="plain-syntax">-></span><span class="identifier-syntax">ptoken_category</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NONTERMINAL_PTC</span><span class="plain-syntax">)</span>
|
||||
|
@ -637,12 +604,12 @@ example:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">TRIE_END</span><span class="plain-syntax">, </span><a href="4-dl.html#SP1" class="function-link"><span class="function-syntax">DefaultLanguage::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nl</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">content_token</span><span class="plain-syntax">-></span><span class="identifier-syntax">ptoken_category</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FIXED_WORD_PTC</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">[</span><span class="identifier-syntax">n</span><span class="plain-syntax">] =</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP10" class="function-link"><span class="function-syntax">Conjugation::expand_with_endings</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">content_token</span><span class="plain-syntax">-></span><span class="identifier-syntax">ve_pt</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP9" class="function-link"><span class="function-syntax">Conjugation::expand_with_endings</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">content_token</span><span class="plain-syntax">-></span><span class="identifier-syntax">ve_pt</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">malformed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">malformed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP8_2">§8.2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. Merge verb material. </b>Now the final main step. <span class="extract"><span class="extract-syntax">row</span></span> points to a list of ptokens containing text,
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP7_2">§7.2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. Merge verb material. </b>Now the final main step. <span class="extract"><span class="extract-syntax">row</span></span> points to a list of ptokens containing text,
|
||||
and we have to copy that text into a word assemblage and return it.
|
||||
</p>
|
||||
|
||||
|
@ -671,7 +638,7 @@ a different verb's conjugation "lifting".
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::merge</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Conjugation::merge</span></span>:<br/><a href="3-vc.html#SP6_3_2_1">§6.3.2.1</a>, <a href="3-vc.html#SP6_3_2_1_1">§6.3.2.1.1</a>, <a href="3-vc.html#SP6_3_2_1_2">§6.3.2.1.2</a>, <a href="3-vc.html#SP9_2">§9.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">ptoken</span><span class="plain-syntax"> *</span><span class="identifier-syntax">row</span><span class="plain-syntax">,</span>
|
||||
<span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::merge</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Conjugation::merge</span></span>:<br/><a href="3-vc.html#SP6_3_2_1">§6.3.2.1</a>, <a href="3-vc.html#SP6_3_2_1_1">§6.3.2.1.1</a>, <a href="3-vc.html#SP6_3_2_1_2">§6.3.2.1.2</a>, <a href="3-vc.html#SP8_2">§8.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">ptoken</span><span class="plain-syntax"> *</span><span class="identifier-syntax">row</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">sense</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">tense</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">person</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">number</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">num_ingredients</span><span class="plain-syntax">, </span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ingredients</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">NATURAL_LANGUAGE_WORDS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nl</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">modal_following</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">modal_following</span><span class="plain-syntax">) { *</span><span class="identifier-syntax">modal_following</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; }</span>
|
||||
|
@ -679,33 +646,33 @@ a different verb's conjugation "lifting".
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">verb_form_to_lift</span><span class="plain-syntax"> = -1;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ptoken</span><span class="plain-syntax"> *</span><span class="identifier-syntax">chunk</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">chunk</span><span class="plain-syntax"> = </span><span class="identifier-syntax">row</span><span class="plain-syntax">; </span><span class="identifier-syntax">chunk</span><span class="plain-syntax">; </span><span class="identifier-syntax">chunk</span><span class="plain-syntax"> = </span><span class="identifier-syntax">chunk</span><span class="plain-syntax">-></span><span class="identifier-syntax">next_pt</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP9_5" class="named-paragraph-link"><span class="named-paragraph">A plus-plus-digit indicates auxiliary modal usage</span><span class="named-paragraph-number">9.5</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP9_3" class="named-paragraph-link"><span class="named-paragraph">A form number followed by a bracketed verb lifts the relevant form</span><span class="named-paragraph-number">9.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP9_4" class="named-paragraph-link"><span class="named-paragraph">A bracketed verb becomes a lift</span><span class="named-paragraph-number">9.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP9_1" class="named-paragraph-link"><span class="named-paragraph">A fixed word is simply added to the result</span><span class="named-paragraph-number">9.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP9_2" class="named-paragraph-link"><span class="named-paragraph">A nonterminal is a table of persons</span><span class="named-paragraph-number">9.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP8_5" class="named-paragraph-link"><span class="named-paragraph">A plus-plus-digit indicates auxiliary modal usage</span><span class="named-paragraph-number">8.5</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP8_3" class="named-paragraph-link"><span class="named-paragraph">A form number followed by a bracketed verb lifts the relevant form</span><span class="named-paragraph-number">8.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP8_4" class="named-paragraph-link"><span class="named-paragraph">A bracketed verb becomes a lift</span><span class="named-paragraph-number">8.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP8_1" class="named-paragraph-link"><span class="named-paragraph">A fixed word is simply added to the result</span><span class="named-paragraph-number">8.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP8_2" class="named-paragraph-link"><span class="named-paragraph">A nonterminal is a table of persons</span><span class="named-paragraph-number">8.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"Error in merge material line"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-vc.html#SP11" class="function-link"><span class="function-syntax">Conjugation::shorten_with_contractions</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-vc.html#SP10" class="function-link"><span class="function-syntax">Conjugation::shorten_with_contractions</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP9_1" class="paragraph-anchor"></a><b>§9.1. </b>To take the easiest case first. If we read a word like <span class="extract"><span class="extract-syntax">trailing</span></span>, we simply
|
||||
<p class="commentary firstcommentary"><a id="SP8_1" class="paragraph-anchor"></a><b>§8.1. </b>To take the easiest case first. If we read a word like <span class="extract"><span class="extract-syntax">trailing</span></span>, we simply
|
||||
add it. But note that <span class="extract"><span class="extract-syntax">Conjugation::expand_with_endings</span></span> has other tricks up its sleeve,
|
||||
and might expand <span class="extract"><span class="extract-syntax">3+ed</span></span> to "trailed".
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">A fixed word is simply added to the result</span><span class="named-paragraph-number">9.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">A fixed word is simply added to the result</span><span class="named-paragraph-number">8.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">chunk</span><span class="plain-syntax">-></span><span class="identifier-syntax">ptoken_category</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FIXED_WORD_PTC</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wa</span><span class="plain-syntax"> = </span><span class="identifier-syntax">WordAssemblages::join</span><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP10" class="function-link"><span class="function-syntax">Conjugation::expand_with_endings</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">chunk</span><span class="plain-syntax">-></span><span class="identifier-syntax">ve_pt</span><span class="plain-syntax">, </span><span class="identifier-syntax">ingredients</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP9" class="function-link"><span class="function-syntax">Conjugation::expand_with_endings</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">chunk</span><span class="plain-syntax">-></span><span class="identifier-syntax">ve_pt</span><span class="plain-syntax">, </span><span class="identifier-syntax">ingredients</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP9">§9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_2" class="paragraph-anchor"></a><b>§9.2. </b>If we read a nonterminal name, such as <span class="extract"><span class="extract-syntax"><fr-vivre-present></span></span>, then this must
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP8">§8</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP8_2" class="paragraph-anchor"></a><b>§8.2. </b>If we read a nonterminal name, such as <span class="extract"><span class="extract-syntax"><fr-vivre-present></span></span>, then this must
|
||||
be a grammar with six productions, giving the text to use for the six different
|
||||
persons. We consult <span class="extract"><span class="extract-syntax">person</span></span> and extract the relevant text. For example, if
|
||||
<span class="extract"><span class="extract-syntax">person</span></span> is 3, we extract "vivons". Note that this material is itself read
|
||||
|
@ -713,7 +680,7 @@ in by a recursive use of <span class="extract"><span class="extract-syntax">Conj
|
|||
make use of the same fancy features we're allowing here.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">A nonterminal is a table of persons</span><span class="named-paragraph-number">9.2</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">A nonterminal is a table of persons</span><span class="named-paragraph-number">8.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -725,7 +692,7 @@ make use of the same fancy features we're allowing here.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pl</span><span class="plain-syntax">-></span><span class="identifier-syntax">first_pr</span><span class="plain-syntax">; </span><span class="identifier-syntax">pr</span><span class="plain-syntax">; </span><span class="identifier-syntax">pr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pr</span><span class="plain-syntax">-></span><span class="identifier-syntax">next_pr</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> == </span><span class="identifier-syntax">number</span><span class="plain-syntax">*3 + </span><span class="identifier-syntax">person</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wa</span><span class="plain-syntax"> = </span><span class="identifier-syntax">WordAssemblages::join</span><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP9" class="function-link"><span class="function-syntax">Conjugation::merge</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pr</span><span class="plain-syntax">-></span><span class="identifier-syntax">first_pt</span><span class="plain-syntax">, </span><span class="identifier-syntax">sense</span><span class="plain-syntax">, </span><span class="identifier-syntax">tense</span><span class="plain-syntax">, </span><span class="identifier-syntax">person</span><span class="plain-syntax">, </span><span class="identifier-syntax">number</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP8" class="function-link"><span class="function-syntax">Conjugation::merge</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pr</span><span class="plain-syntax">-></span><span class="identifier-syntax">first_pt</span><span class="plain-syntax">, </span><span class="identifier-syntax">sense</span><span class="plain-syntax">, </span><span class="identifier-syntax">tense</span><span class="plain-syntax">, </span><span class="identifier-syntax">person</span><span class="plain-syntax">, </span><span class="identifier-syntax">number</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">num_ingredients</span><span class="plain-syntax">, </span><span class="identifier-syntax">ingredients</span><span class="plain-syntax">, </span><span class="identifier-syntax">nl</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -733,8 +700,8 @@ make use of the same fancy features we're allowing here.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP9">§9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_3" class="paragraph-anchor"></a><b>§9.3. </b>A number followed by a verb in brackets, like so:
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP8">§8</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP8_3" class="paragraph-anchor"></a><b>§8.3. </b>A number followed by a verb in brackets, like so:
|
||||
</p>
|
||||
|
||||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
|
@ -746,18 +713,18 @@ performed now; we make a note and carry it out when we reach the brackets,
|
|||
on the next iteration.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">A form number followed by a bracketed verb lifts the relevant form</span><span class="named-paragraph-number">9.3</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">A form number followed by a bracketed verb lifts the relevant form</span><span class="named-paragraph-number">8.3</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><a href="3-vc.html#SP12" class="function-link"><span class="function-syntax">Conjugation::ptoken_to_verb_form_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">chunk</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">X</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) && (</span><a href="3-vc.html#SP14" class="function-link"><span class="function-syntax">Conjugation::ptoken_as_bracket</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">chunk</span><span class="plain-syntax">-></span><span class="identifier-syntax">next_pt</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><a href="3-vc.html#SP11" class="function-link"><span class="function-syntax">Conjugation::ptoken_to_verb_form_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">chunk</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">X</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) && (</span><a href="3-vc.html#SP13" class="function-link"><span class="function-syntax">Conjugation::ptoken_as_bracket</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">chunk</span><span class="plain-syntax">-></span><span class="identifier-syntax">next_pt</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_form_to_lift</span><span class="plain-syntax"> = </span><span class="identifier-syntax">X</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP9">§9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_4" class="paragraph-anchor"></a><b>§9.4. </b>And now the lift takes place. We might at this point have <span class="extract"><span class="extract-syntax">verb_form_to_lift</span></span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP8">§8</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP8_4" class="paragraph-anchor"></a><b>§8.4. </b>And now the lift takes place. We might at this point have <span class="extract"><span class="extract-syntax">verb_form_to_lift</span></span>
|
||||
set, in which case we should lift a verb form, or we might not, in which case
|
||||
we should lift an ordinary usage, such as third-person singular in a particular
|
||||
tense. A lift can optionally change tense or sense: for example,
|
||||
|
@ -774,24 +741,24 @@ infinitive passes through <span class="extract"><span class="Preform-extract-syn
|
|||
make use of the numbered verb forms if we want it to.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">A bracketed verb becomes a lift</span><span class="named-paragraph-number">9.4</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">A bracketed verb becomes a lift</span><span class="named-paragraph-number">8.4</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-vc.html#SP14" class="function-link"><span class="function-syntax">Conjugation::ptoken_as_bracket</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">chunk</span><span class="plain-syntax">) == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-vc.html#SP13" class="function-link"><span class="function-syntax">Conjugation::ptoken_as_bracket</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">chunk</span><span class="plain-syntax">) == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">chunk</span><span class="plain-syntax"> = </span><span class="identifier-syntax">chunk</span><span class="plain-syntax">-></span><span class="identifier-syntax">next_pt</span><span class="plain-syntax">; </span><span class="comment-syntax"> move past open bracket</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="comment-syntax"> if there is a tense/sense indicator, use it, and move forward</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax"> = -1;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="3-vc.html#SP13" class="function-link"><span class="function-syntax">Conjugation::ptoken_to_tense_indicator</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">chunk</span><span class="plain-syntax">, &</span><span class="identifier-syntax">S</span><span class="plain-syntax">) - </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="3-vc.html#SP12" class="function-link"><span class="function-syntax">Conjugation::ptoken_to_tense_indicator</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">chunk</span><span class="plain-syntax">, &</span><span class="identifier-syntax">S</span><span class="plain-syntax">) - </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">T</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">chunk</span><span class="plain-syntax"> = </span><span class="identifier-syntax">chunk</span><span class="plain-syntax">-></span><span class="identifier-syntax">next_pt</span><span class="plain-syntax">; </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tense</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">S</span><span class="plain-syntax"> == -1) </span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sense</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="comment-syntax"> extract the text of the infinitive</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">verb_lifted</span><span class="plain-syntax"> = </span><span class="identifier-syntax">WordAssemblages::lit_0</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">chunk</span><span class="plain-syntax">) && (</span><a href="3-vc.html#SP14" class="function-link"><span class="function-syntax">Conjugation::ptoken_as_bracket</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">chunk</span><span class="plain-syntax">) != -1)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">chunk</span><span class="plain-syntax">) && (</span><a href="3-vc.html#SP13" class="function-link"><span class="function-syntax">Conjugation::ptoken_as_bracket</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">chunk</span><span class="plain-syntax">) != -1)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_lifted</span><span class="plain-syntax"> = </span><span class="identifier-syntax">WordAssemblages::join</span><span class="plain-syntax">(</span><span class="identifier-syntax">verb_lifted</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP10" class="function-link"><span class="function-syntax">Conjugation::expand_with_endings</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">chunk</span><span class="plain-syntax">-></span><span class="identifier-syntax">ve_pt</span><span class="plain-syntax">, </span><span class="identifier-syntax">ingredients</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP9" class="function-link"><span class="function-syntax">Conjugation::expand_with_endings</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">chunk</span><span class="plain-syntax">-></span><span class="identifier-syntax">ve_pt</span><span class="plain-syntax">, </span><span class="identifier-syntax">ingredients</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">chunk</span><span class="plain-syntax"> = </span><span class="identifier-syntax">chunk</span><span class="plain-syntax">-></span><span class="identifier-syntax">next_pt</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
|
@ -809,8 +776,8 @@ make use of the numbered verb forms if we want it to.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP9">§9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_5" class="paragraph-anchor"></a><b>§9.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">A plus-plus-digit indicates auxiliary modal usage</span><span class="named-paragraph-number">9.5</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP8">§8</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP8_5" class="paragraph-anchor"></a><b>§8.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">A plus-plus-digit indicates auxiliary modal usage</span><span class="named-paragraph-number">8.5</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -825,8 +792,8 @@ make use of the numbered verb forms if we want it to.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP9">§9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. </b>Whenever we read a single word, it passes through the following. A word
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP8">§8</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. </b>Whenever we read a single word, it passes through the following. A word
|
||||
like "fish" will pass through unchanged; a number like "7" will convert
|
||||
to verb form 7 in the current verb (for example, 2 becomes the present
|
||||
participle); a plus sign joins two pieces together; and a tilde is a tie,
|
||||
|
@ -834,7 +801,7 @@ joining but with a space. Thus <span class="extract"><span class="extract-syntax
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::expand_with_endings</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Conjugation::expand_with_endings</span></span>:<br/><a href="3-vc.html#SP8_2_1">§8.2.1</a>, <a href="3-vc.html#SP9_1">§9.1</a>, <a href="3-vc.html#SP9_4">§9.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">vocabulary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ve</span><span class="plain-syntax">,</span>
|
||||
<span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::expand_with_endings</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Conjugation::expand_with_endings</span></span>:<br/><a href="3-vc.html#SP7_2_1">§7.2.1</a>, <a href="3-vc.html#SP8_1">§8.1</a>, <a href="3-vc.html#SP8_4">§8.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">vocabulary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ve</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ve</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">WordAssemblages::lit_0</span><span class="plain-syntax">();</span>
|
||||
|
||||
|
@ -846,8 +813,8 @@ joining but with a space. Thus <span class="extract"><span class="extract-syntax
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Vocabulary::entry_for_partial_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-1);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vocabulary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">back</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Vocabulary::entry_for_partial_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">Wide::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">)-1);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">front_wa</span><span class="plain-syntax"> = </span><a href="3-vc.html#SP10" class="function-link"><span class="function-syntax">Conjugation::expand_with_endings</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">front</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">back_wa</span><span class="plain-syntax"> = </span><a href="3-vc.html#SP10" class="function-link"><span class="function-syntax">Conjugation::expand_with_endings</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">back</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">front_wa</span><span class="plain-syntax"> = </span><a href="3-vc.html#SP9" class="function-link"><span class="function-syntax">Conjugation::expand_with_endings</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">front</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">back_wa</span><span class="plain-syntax"> = </span><a href="3-vc.html#SP9" class="function-link"><span class="function-syntax">Conjugation::expand_with_endings</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">back</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="string-syntax">"%A"</span><span class="plain-syntax">, &</span><span class="identifier-syntax">front_wa</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] == </span><span class="character-syntax">'~'</span><span class="plain-syntax">) </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="character-syntax">' '</span><span class="plain-syntax">);</span>
|
||||
|
@ -857,13 +824,13 @@ joining but with a space. Thus <span class="extract"><span class="extract-syntax
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">WordAssemblages::from_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><a href="3-vc.html#SP12" class="function-link"><span class="function-syntax">Conjugation::ve_to_verb_form_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ve</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><a href="3-vc.html#SP11" class="function-link"><span class="function-syntax">Conjugation::ve_to_verb_form_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ve</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">X</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">verb_forms</span><span class="plain-syntax">[</span><span class="identifier-syntax">X</span><span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">WordAssemblages::lit_1</span><span class="plain-syntax">(</span><span class="identifier-syntax">ve</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. </b>The final step in merging verb material is to pass the result through the
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. </b>The final step in merging verb material is to pass the result through the
|
||||
following, which attends to contractions. (Most of the time it does nothing.)
|
||||
For example, suppose we have:
|
||||
</p>
|
||||
|
@ -895,7 +862,7 @@ we see a <span class="extract"><span class="Preform-extract-syntax">-'</span></s
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::shorten_with_contractions</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Conjugation::shorten_with_contractions</span></span>:<br/><a href="3-vc.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">wa</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::shorten_with_contractions</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Conjugation::shorten_with_contractions</span></span>:<br/><a href="3-vc.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">wa</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vocabulary_entry</span><span class="plain-syntax"> **</span><span class="identifier-syntax">words</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">word_count</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WordAssemblages::as_array</span><span class="plain-syntax">(&</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, &</span><span class="identifier-syntax">words</span><span class="plain-syntax">, &</span><span class="identifier-syntax">word_count</span><span class="plain-syntax">);</span>
|
||||
|
@ -907,7 +874,7 @@ we see a <span class="extract"><span class="Preform-extract-syntax">-'</span></s
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">j</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">] == </span><span class="character-syntax">'-'</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">+1] == </span><span class="character-syntax">'\''</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">contract_this</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP11_1" class="named-paragraph-link"><span class="named-paragraph">Decide whether a contraction is needed here</span><span class="named-paragraph-number">11.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vc.html#SP10_1" class="named-paragraph-link"><span class="named-paragraph">Decide whether a contraction is needed here</span><span class="named-paragraph-number">10.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">contract_this</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">k</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">k</span><span class="plain-syntax"><</span><span class="identifier-syntax">j</span><span class="plain-syntax">-1; </span><span class="identifier-syntax">k</span><span class="plain-syntax">++) { </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="string-syntax">"%c"</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">k</span><span class="plain-syntax">]); }</span>
|
||||
|
@ -929,11 +896,11 @@ we see a <span class="extract"><span class="Preform-extract-syntax">-'</span></s
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">wa</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP11_1" class="paragraph-anchor"></a><b>§11.1. </b>We contract if the following word starts with a (possibly accented) vowel,
|
||||
<p class="commentary firstcommentary"><a id="SP10_1" class="paragraph-anchor"></a><b>§10.1. </b>We contract if the following word starts with a (possibly accented) vowel,
|
||||
and we construe "y" (but not "h" or "w") as a vowel.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Decide whether a contraction is needed here</span><span class="named-paragraph-number">11.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Decide whether a contraction is needed here</span><span class="named-paragraph-number">10.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -943,18 +910,18 @@ and we construe "y" (but not "h" or "w") as a vowel.
|
|||
<span class="plain-syntax"> (</span><span class="identifier-syntax">first</span><span class="plain-syntax"> == </span><span class="character-syntax">'o'</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">first</span><span class="plain-syntax"> == </span><span class="character-syntax">'u'</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">first</span><span class="plain-syntax"> == </span><span class="character-syntax">'y'</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">contract_this</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP11">§11</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. Parsing verb form numbers. </b>These are easy: they're just written as arabic numbers.
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vc.html#SP10">§10</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. Parsing verb form numbers. </b>These are easy: they're just written as arabic numbers.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::ptoken_to_verb_form_number</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Conjugation::ptoken_to_verb_form_number</span></span>:<br/><a href="3-vc.html#SP8_2_1">§8.2.1</a>, <a href="3-vc.html#SP9_3">§9.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">ptoken</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pt</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::ptoken_to_verb_form_number</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Conjugation::ptoken_to_verb_form_number</span></span>:<br/><a href="3-vc.html#SP7_2_1">§7.2.1</a>, <a href="3-vc.html#SP8_3">§8.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">ptoken</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pt</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">pt</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-></span><span class="identifier-syntax">ptoken_category</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FIXED_WORD_PTC</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-vc.html#SP12" class="function-link"><span class="function-syntax">Conjugation::ve_to_verb_form_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-></span><span class="identifier-syntax">ve_pt</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-vc.html#SP11" class="function-link"><span class="function-syntax">Conjugation::ve_to_verb_form_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-></span><span class="identifier-syntax">ve_pt</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> -1;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::ve_to_verb_form_number</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Conjugation::ve_to_verb_form_number</span></span>:<br/><a href="3-vc.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">vocabulary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ve</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::ve_to_verb_form_number</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Conjugation::ve_to_verb_form_number</span></span>:<br/><a href="3-vc.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">vocabulary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ve</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Vocabulary::test_vflags</span><span class="plain-syntax">(</span><span class="identifier-syntax">ve</span><span class="plain-syntax">, </span><span class="identifier-syntax">NUMBER_MC</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Vocabulary::get_literal_number_value</span><span class="plain-syntax">(</span><span class="identifier-syntax">ve</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">X</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">X</span><span class="plain-syntax"> < </span><span class="constant-syntax">MAX_FORM_TYPES</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">X</span><span class="plain-syntax">;</span>
|
||||
|
@ -962,11 +929,11 @@ and we construe "y" (but not "h" or "w") as a vowel.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> -1;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>§13. Parsing tense and sense indicators. </b>These are a little harder: for example, <span class="extract"><span class="extract-syntax">t2+</span></span> or <span class="extract"><span class="extract-syntax">t3</span></span>.
|
||||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. Parsing tense and sense indicators. </b>These are a little harder: for example, <span class="extract"><span class="extract-syntax">t2+</span></span> or <span class="extract"><span class="extract-syntax">t3</span></span>.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::ptoken_to_tense_indicator</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Conjugation::ptoken_to_tense_indicator</span></span>:<br/><a href="3-vc.html#SP9_4">§9.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">ptoken</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pt</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">set_sense</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::ptoken_to_tense_indicator</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Conjugation::ptoken_to_tense_indicator</span></span>:<br/><a href="3-vc.html#SP8_4">§8.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">ptoken</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pt</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">set_sense</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">pt</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-></span><span class="identifier-syntax">ptoken_category</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FIXED_WORD_PTC</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vocabulary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ve</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pt</span><span class="plain-syntax">-></span><span class="identifier-syntax">ve_pt</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Vocabulary::get_exemplar</span><span class="plain-syntax">(</span><span class="identifier-syntax">ve</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
|
@ -992,10 +959,10 @@ and we construe "y" (but not "h" or "w") as a vowel.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> -1;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>§14. Parsing utilities. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>§13. Parsing utilities. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::ptoken_as_bracket</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Conjugation::ptoken_as_bracket</span></span>:<br/><a href="3-vc.html#SP9_3">§9.3</a>, <a href="3-vc.html#SP9_4">§9.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">ptoken</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pt</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::ptoken_as_bracket</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Conjugation::ptoken_as_bracket</span></span>:<br/><a href="3-vc.html#SP8_3">§8.3</a>, <a href="3-vc.html#SP8_4">§8.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">ptoken</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pt</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">pt</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">pt</span><span class="plain-syntax">-></span><span class="identifier-syntax">ptoken_category</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FIXED_WORD_PTC</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vocabulary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ve</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pt</span><span class="plain-syntax">-></span><span class="identifier-syntax">ve_pt</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ve</span><span class="plain-syntax"> == </span><span class="identifier-syntax">OPENBRACKET_V</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
|
@ -1004,12 +971,12 @@ and we construe "y" (but not "h" or "w") as a vowel.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>§15. </b>In the following, for example, "breveter" as <span class="extract"><span class="extract-syntax">ve</span></span> would match "-veter"
|
||||
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>§14. </b>In the following, for example, "breveter" as <span class="extract"><span class="extract-syntax">ve</span></span> would match "-veter"
|
||||
as <span class="extract"><span class="extract-syntax">pattern</span></span>.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::compare_ve_with_tails</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Conjugation::compare_ve_with_tails</span></span>:<br/><a href="3-vc.html#SP8_1_1_1">§8.1.1.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">vocabulary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ve</span><span class="plain-syntax">, </span><span class="identifier-syntax">vocabulary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::compare_ve_with_tails</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Conjugation::compare_ve_with_tails</span></span>:<br/><a href="3-vc.html#SP7_1_1_1">§7.1.1.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">vocabulary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ve</span><span class="plain-syntax">, </span><span class="identifier-syntax">vocabulary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ve</span><span class="plain-syntax"> == </span><span class="identifier-syntax">pattern</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Vocabulary::get_exemplar</span><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">[0] == </span><span class="character-syntax">'-'</span><span class="plain-syntax">) {</span>
|
||||
|
@ -1023,16 +990,16 @@ as <span class="extract"><span class="extract-syntax">pattern</span></span>.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. Errors. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>§15. Errors. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::error</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Conjugation::error</span></span>:<br/><a href="3-vc.html#SP6_3_2">§6.3.2</a>, <a href="3-vc.html#SP6_3_2_1_3">§6.3.2.1.3</a>, <a href="3-vc.html#SP8">§8</a>, <a href="3-vc.html#SP8_1_1">§8.1.1</a>, <a href="3-vc.html#SP8_2">§8.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">base_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonterminal</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nt</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Conjugation::error</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Conjugation::error</span></span>:<br/><a href="3-vc.html#SP6_3_2">§6.3.2</a>, <a href="3-vc.html#SP6_3_2_1_3">§6.3.2.1.3</a>, <a href="3-vc.html#SP7">§7</a>, <a href="3-vc.html#SP7_1_1">§7.1.1</a>, <a href="3-vc.html#SP7_2">§7.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">base_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonterminal</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nt</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">production</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pr</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">message</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PreformUtilities::error</span><span class="plain-syntax">(</span><span class="identifier-syntax">base_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">nt</span><span class="plain-syntax">, </span><span class="identifier-syntax">pr</span><span class="plain-syntax">, </span><span class="identifier-syntax">message</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">exit</span><span class="plain-syntax">(1);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>§17. Testing. </b>Similarly, the following helps translators by giving them unit tests for their
|
||||
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. Testing. </b>Similarly, the following helps translators by giving them unit tests for their
|
||||
conjugations:
|
||||
</p>
|
||||
|
||||
|
@ -1049,7 +1016,7 @@ conjugations:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">DESTROY</span><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="reserved-syntax">verb_conjugation</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>§18. </b>This is for testing English only; it helps with the test suite cases derived
|
||||
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>§17. </b>This is for testing English only; it helps with the test suite cases derived
|
||||
from our dictionary of 14,000 or so present and past participles.
|
||||
</p>
|
||||
|
||||
|
@ -1058,7 +1025,7 @@ from our dictionary of 14,000 or so present and past participles.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax"> = </span><a href="3-vc.html#SP6" class="function-link"><span class="function-syntax">Conjugation::conjugate</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WordAssemblages::from_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">), </span><a href="4-dl.html#SP1" class="function-link"><span class="function-syntax">DefaultLanguage::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) { </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"Failed test\n"</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP18" class="function-link"><span class="function-syntax">Conjugation::write_participle</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">vc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vc.html#SP17" class="function-link"><span class="function-syntax">Conjugation::write_participle</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">vc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DESTROY</span><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="reserved-syntax">verb_conjugation</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
@ -1067,7 +1034,7 @@ from our dictionary of 14,000 or so present and past participles.
|
|||
<span class="plain-syntax"> &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">infinitive</span><span class="plain-syntax">), &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">present_participle</span><span class="plain-syntax">), &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">past_participle</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>§19. </b>As noted above, these nonterminals have no parsing function, and are used only
|
||||
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>§18. </b>As noted above, these nonterminals have no parsing function, and are used only
|
||||
as markers in verb conjugations.
|
||||
</p>
|
||||
|
||||
|
|
|
@ -82,7 +82,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">default_language_for_linguistics</span><span class="plain-syntax"> = </span><span class="identifier-syntax">nl</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">NATURAL_LANGUAGE_WORDS_TYPE</span><span class="plain-syntax"> *</span><span class="function-syntax">DefaultLanguage::get</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">DefaultLanguage::get</span></span>:<br/>Article Inflection - <a href="2-ai.html#SP1">§1</a><br/>Grading Adjectives - <a href="2-ga.html#SP2">§2</a>, <a href="2-ga.html#SP3">§3</a>, <a href="2-ga.html#SP4">§4</a><br/>Past Participles - <a href="2-pp.html#SP2">§2</a><br/>Pluralisation - <a href="2-plr.html#SP3">§3</a>, <a href="2-plr.html#SP4">§4</a><br/>Lexical Clusters - <a href="3-lc2.html#SP3">§3</a>, <a href="3-lc2.html#SP4">§4</a>, <a href="3-lc2.html#SP4_1_1">§4.1.1</a><br/>Declensions - <a href="3-dcl.html#SP5">§5</a>, <a href="3-dcl.html#SP6">§6</a>, <a href="3-dcl.html#SP8">§8</a><br/>Verb Conjugation - <a href="3-vc.html#SP6">§6</a>, <a href="3-vc.html#SP8_2_1">§8.2.1</a>, <a href="3-vc.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">NATURAL_LANGUAGE_WORDS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nl</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">NATURAL_LANGUAGE_WORDS_TYPE</span><span class="plain-syntax"> *</span><span class="function-syntax">DefaultLanguage::get</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">DefaultLanguage::get</span></span>:<br/>Article Inflection - <a href="2-ai.html#SP1">§1</a><br/>Grading Adjectives - <a href="2-ga.html#SP2">§2</a>, <a href="2-ga.html#SP3">§3</a>, <a href="2-ga.html#SP4">§4</a><br/>Past Participles - <a href="2-pp.html#SP2">§2</a><br/>Pluralisation - <a href="2-plr.html#SP3">§3</a>, <a href="2-plr.html#SP4">§4</a><br/>Lexical Clusters - <a href="3-lc2.html#SP3">§3</a>, <a href="3-lc2.html#SP4">§4</a>, <a href="3-lc2.html#SP4_1_1">§4.1.1</a><br/>Declensions - <a href="3-dcl.html#SP5">§5</a>, <a href="3-dcl.html#SP6">§6</a>, <a href="3-dcl.html#SP8">§8</a><br/>Verb Conjugation - <a href="3-vc.html#SP6">§6</a>, <a href="3-vc.html#SP7_2_1">§7.2.1</a>, <a href="3-vc.html#SP17">§17</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">NATURAL_LANGUAGE_WORDS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nl</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">nl</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">nl</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">default_language_for_linguistics</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Services</a></li><li><a href="index.html">inflections</a></li><li><a href="index.html#P">Preliminaries</a></li><li><b>How To Include This Module</b></li></ul></div>
|
||||
<p class="purpose">What to do to make use of the inflections module in a new command-line tool.</p>
|
||||
|
||||
<ul class="toc"><li><a href="P-htitm.html#SP1">§1. Status</a></li><li><a href="P-htitm.html#SP2">§2. Importing the module</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="P-htitm.html#SP1">§1. Status</a></li><li><a href="P-htitm.html#SP2">§2. Importing the module</a></li><li><a href="P-htitm.html#SP3">§3. Using callbacks</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Status. </b>The inflections module is provided as one of the "services" suite of modules,
|
||||
which means that it was built with a view to potential incorporation in
|
||||
|
@ -95,9 +95,20 @@ module:
|
|||
<span class="extract"><span class="extract-syntax">InflectionsModule::end()</span></span> just before it shuts down. (But just after, and just
|
||||
before, the corresponding calls to <a href="../../../inweb/docs/foundation-module/index.html" class="internal">foundation</a>.)
|
||||
</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>This module has no callback functions to modify its behaviour.
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. Using callbacks. </b>Shared modules like this one are tweaked in behaviour by defining "callback
|
||||
functions". This means that the parent might provide a function of its own
|
||||
which would answer a question put to it by the module, or take some action
|
||||
on behalf of the module: it's a callback in the sense that the parent is
|
||||
normally calling the module, but then the module calls the parent back to
|
||||
ask for data or action.
|
||||
</p>
|
||||
|
||||
<p class="commentary">This module has only one callbacks and it is optional:
|
||||
</p>
|
||||
|
||||
<ul class="items"><li>● <span class="extract"><span class="extract-syntax">VC_COMPILATION_LINGUISTICS_CALLBACK</span></span>, if provided, allows the <span class="extract"><span class="extract-syntax">compilation_data</span></span>
|
||||
part of a <span class="extract"><span class="extract-syntax">verb_conjugation</span></span> to be initialised. See <a href="3-vc.html#SP6" class="internal">Conjugation::conjugate</a>.
|
||||
</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="P-wtmd.html">❮</a></li><li class="progresscurrentchapter">P</li><li class="progresssection"><a href="P-wtmd.html">wtmd</a></li><li class="progresscurrent">htitm</li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-tai.html">2</a></li><li class="progresschapter"><a href="3-lc.html">3</a></li><li class="progresschapter"><a href="4-dl.html">4</a></li><li class="progressnext"><a href="1-im.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
|
|
@ -182,12 +182,12 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax">++ < </span><span class="constant-syntax">10</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PRINT</span><span class="plain-syntax">(</span><span class="string-syntax">"Verb %W -->\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="../inflections-module/3-vc.html#SP17" class="function-link"><span class="function-syntax">Conjugation::test</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><a href="../inflections-module/4-dl.html#SP1" class="function-link"><span class="function-syntax">DefaultLanguage::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="../inflections-module/3-vc.html#SP16" class="function-link"><span class="function-syntax">Conjugation::test</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><a href="../inflections-module/4-dl.html#SP1" class="function-link"><span class="function-syntax">DefaultLanguage::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/4-pm.html#SP14" class="function-link"><span class="function-syntax">Regexp::replace</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"%^"</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"\n"</span><span class="plain-syntax">, </span><span class="constant-syntax">REP_REPEATING</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PRINT</span><span class="plain-syntax">(</span><span class="string-syntax">"%S\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><a href="../inflections-module/3-vc.html#SP18" class="function-link"><span class="function-syntax">Conjugation::test_participle</span></a><span class="plain-syntax">(</span><span class="constant-syntax">STDOUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../inflections-module/3-vc.html#SP17" class="function-link"><span class="function-syntax">Conjugation::test_participle</span></a><span class="plain-syntax">(</span><span class="constant-syntax">STDOUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
|
@ -282,7 +282,7 @@ they can be rather lengthy.
|
|||
<span class="plain-syntax"> </span><a href="1-mn.html#SP3" class="function-link"><span class="function-syntax">Main::write_diagnostics</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"documentation-diagnostics.txt"</span><span class="plain-syntax">, &</span><a href="../index-module/2-dr2.html#SP9" class="function-link"><span class="function-syntax">Index::DocReferences::log_statistics</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-mn.html#SP3" class="function-link"><span class="function-syntax">Main::write_diagnostics</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"verbs-diagnostics.txt"</span><span class="plain-syntax">, &</span><a href="../runtime-module/5-vart.html#SP6" class="function-link"><span class="function-syntax">RTVerbs::log_all</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"verbs-diagnostics.txt"</span><span class="plain-syntax">, &</span><a href="../linguistics-module/3-vu.html#SP2" class="function-link"><span class="function-syntax">VerbUsages::log_all</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-mn.html#SP3" class="function-link"><span class="function-syntax">Main::write_diagnostics</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"excerpts-diagnostics.txt"</span><span class="plain-syntax">, &</span><a href="../lexicon-module/2-pe.html#SP8" class="function-link"><span class="function-syntax">FromLexicon::statistics</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-mn.html#SP3" class="function-link"><span class="function-syntax">Main::write_diagnostics</span></a><span class="plain-syntax">(</span>
|
||||
|
|
|
@ -83,42 +83,42 @@ which take more than 1/1000th of the total running time.
|
|||
|
||||
<pre class="undisplayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">100.0% in inform7 run</span>
|
||||
<span class="plain-syntax"> 52.8% in compilation to Inter</span>
|
||||
<span class="plain-syntax"> 31.7% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
|
||||
<span class="plain-syntax"> 5.3% in </span><a href="../knowledge-module/4-is.html#SP27" class="internal">InferenceSubjects::emit_all</a>
|
||||
<span class="plain-syntax"> 3.3% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pre_pass</a>
|
||||
<span class="plain-syntax"> 3.0% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_1</a>
|
||||
<span class="plain-syntax"> 1.6% in </span><a href="../assertions-module/5-id.html#SP6" class="internal">ImperativeDefinitions::compile_first_block</a>
|
||||
<span class="plain-syntax"> 1.5% in </span><a href="../assertions-module/5-id.html#SP5" class="internal">ImperativeDefinitions::assess_all</a>
|
||||
<span class="plain-syntax"> 0.7% in </span><a href="../runtime-module/5-vart.html#SP4" class="internal">RTVerbs::ConjugateVerb</a>
|
||||
<span class="plain-syntax"> 56.0% in compilation to Inter</span>
|
||||
<span class="plain-syntax"> 35.6% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
|
||||
<span class="plain-syntax"> 5.6% in </span><a href="../knowledge-module/4-is.html#SP27" class="internal">InferenceSubjects::emit_all</a>
|
||||
<span class="plain-syntax"> 3.5% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pre_pass</a>
|
||||
<span class="plain-syntax"> 3.2% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_1</a>
|
||||
<span class="plain-syntax"> 1.6% in </span><a href="../assertions-module/5-id.html#SP5" class="internal">ImperativeDefinitions::assess_all</a>
|
||||
<span class="plain-syntax"> 0.6% in </span><a href="../runtime-module/5-rls.html#SP9" class="internal">RTRules::compile_rulebooks</a>
|
||||
<span class="plain-syntax"> 0.4% in </span><a href="../assertions-module/5-id.html#SP6" class="internal">ImperativeDefinitions::compile_first_block</a>
|
||||
<span class="plain-syntax"> 0.4% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_2</a>
|
||||
<span class="plain-syntax"> 0.4% in </span><a href="../knowledge-module/5-tmw.html#SP5" class="internal">World::stage_V</a>
|
||||
<span class="plain-syntax"> 0.3% in </span><a href="../runtime-module/5-rart.html#SP17" class="internal">RTRelations::compile_defined_relations</a>
|
||||
<span class="plain-syntax"> 0.1% in </span><a href="../runtime-module/7-act.html#SP2" class="internal">RTActions::compile_functions</a>
|
||||
<span class="plain-syntax"> 0.1% in </span><a href="../runtime-module/8-cg.html#SP2" class="internal">RTCommandGrammars::compile_all</a>
|
||||
<span class="plain-syntax"> 0.1% in </span><a href="../runtime-module/5-rsfk.html#SP27" class="internal">RTKinds::compile_metadata</a>
|
||||
<span class="plain-syntax"> 0.1% in </span><a href="../runtime-module/5-rsfk.html#SP27" class="internal">RTKinds::compile_mkdef_functions</a>
|
||||
<span class="plain-syntax"> 0.1% in </span><a href="../runtime-module/5-rls.html#SP3" class="internal">RTRules::compile_metadata</a>
|
||||
<span class="plain-syntax"> 0.1% in </span><a href="../runtime-module/10-sc.html#SP2" class="internal">RTShowmeCommand::compile_SHOWME_details</a>
|
||||
<span class="plain-syntax"> 0.1% in </span><a href="../core-module/1-wtc.html#SP9" class="internal">Task::make_built_in_kind_constructors</a>
|
||||
<span class="plain-syntax"> 0.1% in </span><a href="../knowledge-module/5-tmw.html#SP3" class="internal">World::stages_II_and_III</a>
|
||||
<span class="plain-syntax"> 2.7% not specifically accounted for</span>
|
||||
<span class="plain-syntax"> 44.9% in running Inter pipeline</span>
|
||||
<span class="plain-syntax"> 15.1% in inter step 7/14: consolidate-text</span>
|
||||
<span class="plain-syntax"> 9.5% in step preparation</span>
|
||||
<span class="plain-syntax"> 8.5% in inter step 2/14: link</span>
|
||||
<span class="plain-syntax"> 7.1% in inter step 14/14: generate inform6 -> auto.inf</span>
|
||||
<span class="plain-syntax"> 0.7% in inter step 10/14: make-identifiers-unique</span>
|
||||
<span class="plain-syntax"> 41.8% in running Inter pipeline</span>
|
||||
<span class="plain-syntax"> 10.6% in inter step 7/14: consolidate-text</span>
|
||||
<span class="plain-syntax"> 10.3% in step preparation</span>
|
||||
<span class="plain-syntax"> 8.7% in inter step 2/14: link</span>
|
||||
<span class="plain-syntax"> 7.2% in inter step 14/14: generate inform6 -> auto.inf</span>
|
||||
<span class="plain-syntax"> 0.8% in inter step 10/14: make-identifiers-unique</span>
|
||||
<span class="plain-syntax"> 0.3% in inter step 11/14: reconcile-verbs</span>
|
||||
<span class="plain-syntax"> 0.3% in inter step 13/14: eliminate-redundant-operations</span>
|
||||
<span class="plain-syntax"> 0.3% in inter step 6/14: assimilate</span>
|
||||
<span class="plain-syntax"> 0.1% in inter step 12/14: eliminate-redundant-labels</span>
|
||||
<span class="plain-syntax"> 0.1% in inter step 4/14: parse-linked-matter</span>
|
||||
<span class="plain-syntax"> 0.1% in inter step 5/14: resolve-conditional-compilation</span>
|
||||
<span class="plain-syntax"> 0.1% in inter step 6/14: assimilate</span>
|
||||
<span class="plain-syntax"> 0.1% in inter step 8/14: resolve-external-symbols</span>
|
||||
<span class="plain-syntax"> 0.1% in inter step 9/14: inspect-plugs</span>
|
||||
<span class="plain-syntax"> 2.1% not specifically accounted for</span>
|
||||
<span class="plain-syntax"> 1.6% in supervisor</span>
|
||||
<span class="plain-syntax"> 0.5% not specifically accounted for</span>
|
||||
<span class="plain-syntax"> 2.3% not specifically accounted for</span>
|
||||
<span class="plain-syntax"> 1.7% in supervisor</span>
|
||||
<span class="plain-syntax"> 0.4% not specifically accounted for</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. Memory consumption. </b>The following gives some idea of which classes of object have the most
|
||||
instances, and also of how Inform's memory tends to be used in practice.
|
||||
|
@ -127,17 +127,17 @@ represent less than 1/1000th of the total.
|
|||
</p>
|
||||
|
||||
<pre class="undisplayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">Total memory consumption was 299210K = 292 MB</span>
|
||||
<span class="plain-syntax">Total memory consumption was 302971K = 296 MB</span>
|
||||
|
||||
<span class="plain-syntax">63.6% was used for 1494312 objects, in 317924 frames in 238 x 800K = 190400K = 185 MB:</span>
|
||||
<span class="plain-syntax">63.9% was used for 1500328 objects, in 319452 frames in 242 x 800K = 193600K = 189 MB:</span>
|
||||
|
||||
<span class="plain-syntax"> 9.6% inter_tree_node_array 41 x 8192 = 335872 objects, 29558048 bytes</span>
|
||||
<span class="plain-syntax"> 6.1% text_stream_array 3350 x 100 = 335000 objects, 18867200 bytes</span>
|
||||
<span class="plain-syntax"> 5.4% linked_list 29570 objects, 16559200 bytes</span>
|
||||
<span class="plain-syntax"> 9.5% inter_tree_node_array 41 x 8192 = 335872 objects, 29558048 bytes</span>
|
||||
<span class="plain-syntax"> 6.1% text_stream_array 3377 x 100 = 337700 objects, 19019264 bytes</span>
|
||||
<span class="plain-syntax"> 5.4% linked_list 29982 objects, 16789920 bytes</span>
|
||||
<span class="plain-syntax"> 3.3% parse_node 129367 objects, 10349360 bytes</span>
|
||||
<span class="plain-syntax"> 2.7% inter_symbol_array 87 x 1024 = 89088 objects, 8555232 bytes</span>
|
||||
<span class="plain-syntax"> 2.4% verb_conjugation 160 objects, 7425280 bytes</span>
|
||||
<span class="plain-syntax"> 1.8% parse_node_annotation_array 345 x 500 = 172500 objects, 5531040 bytes</span>
|
||||
<span class="plain-syntax"> 2.7% inter_symbol_array 88 x 1024 = 90112 objects, 8653568 bytes</span>
|
||||
<span class="plain-syntax"> 2.3% verb_conjugation 160 objects, 7425280 bytes</span>
|
||||
<span class="plain-syntax"> 1.7% parse_node_annotation_array 345 x 500 = 172500 objects, 5531040 bytes</span>
|
||||
<span class="plain-syntax"> 1.0% pcalc_prop_array 24 x 1000 = 24000 objects, 3264768 bytes</span>
|
||||
<span class="plain-syntax"> 1.0% map_data 670 objects, 3178480 bytes</span>
|
||||
<span class="plain-syntax"> 0.8% kind_array 66 x 1000 = 66000 objects, 2642112 bytes</span>
|
||||
|
@ -146,22 +146,22 @@ represent less than 1/1000th of the total.
|
|||
<span class="plain-syntax"> 0.4% inter_name_array 31 x 1000 = 31000 objects, 1488992 bytes</span>
|
||||
<span class="plain-syntax"> 0.4% match_trie_array 10 x 1000 = 10000 objects, 1360320 bytes</span>
|
||||
<span class="plain-syntax"> 0.4% i6_schema_array 21 x 100 = 2100 objects, 1260672 bytes</span>
|
||||
<span class="plain-syntax"> 0.3% inter_package 15109 objects, 1087848 bytes</span>
|
||||
<span class="plain-syntax"> 0.3% inter_package 15294 objects, 1101168 bytes</span>
|
||||
<span class="plain-syntax"> 0.3% id_body 940 objects, 1075360 bytes</span>
|
||||
<span class="plain-syntax"> 0.3% inter_name_generator_array 26 x 1000 = 26000 objects, 1040832 bytes</span>
|
||||
<span class="plain-syntax"> 0.3% adjective_meaning 202 objects, 1000304 bytes</span>
|
||||
<span class="plain-syntax"> 0.3% inter_symbols_table 15109 objects, 966976 bytes</span>
|
||||
<span class="plain-syntax"> 0.3% inter_symbols_table 15294 objects, 978816 bytes</span>
|
||||
<span class="plain-syntax"> 0.3% dictionary 20157 objects, 967536 bytes</span>
|
||||
<span class="plain-syntax"> 0.3% excerpt_meaning 3098 objects, 966576 bytes</span>
|
||||
<span class="plain-syntax"> 0.3% dictionary 19968 objects, 958464 bytes</span>
|
||||
<span class="plain-syntax"> 0.2% dict_entry_array 283 x 100 = 28300 objects, 914656 bytes</span>
|
||||
<span class="plain-syntax"> 0.3% dict_entry_array 289 x 100 = 28900 objects, 934048 bytes</span>
|
||||
<span class="plain-syntax"> 0.2% production 3885 objects, 901320 bytes</span>
|
||||
<span class="plain-syntax"> 0.2% ptoken 8390 objects, 872560 bytes</span>
|
||||
<span class="plain-syntax"> 0.2% grammatical_usage 3610 objects, 866400 bytes</span>
|
||||
<span class="plain-syntax"> 0.2% individual_form 2560 objects, 860160 bytes</span>
|
||||
<span class="plain-syntax"> 0.2% package_request 9668 objects, 850784 bytes</span>
|
||||
<span class="plain-syntax"> 0.2% package_request 9761 objects, 858968 bytes</span>
|
||||
<span class="plain-syntax"> 0.2% inter_schema_node 8663 objects, 831648 bytes</span>
|
||||
<span class="plain-syntax"> 0.2% unary_predicate_array 16 x 1000 = 16000 objects, 640512 bytes</span>
|
||||
<span class="plain-syntax"> 0.1% local_variable_array 48 x 100 = 4800 objects, 462336 bytes</span>
|
||||
<span class="plain-syntax"> 0.1% local_variable_array 50 x 100 = 5000 objects, 481600 bytes</span>
|
||||
<span class="plain-syntax"> 0.1% scan_directory 94 objects, 388032 bytes</span>
|
||||
<span class="plain-syntax"> 0.1% verb_usage 1128 objects, 388032 bytes</span>
|
||||
<span class="plain-syntax"> 0.1% rule 469 objects, 363944 bytes</span>
|
||||
|
@ -169,21 +169,21 @@ represent less than 1/1000th of the total.
|
|||
<span class="plain-syntax"> ---- noun 2379 objects, 285480 bytes</span>
|
||||
<span class="plain-syntax"> ---- inference_subject 665 objects, 260680 bytes</span>
|
||||
<span class="plain-syntax"> ---- inter_annotation_array 1 x 8192 objects, 196640 bytes</span>
|
||||
<span class="plain-syntax"> ---- compilation_subtask 2102 objects, 168160 bytes</span>
|
||||
<span class="plain-syntax"> ---- linguistic_stock_item 3315 objects, 159120 bytes</span>
|
||||
<span class="plain-syntax"> ---- binary_predicate 321 objects, 156648 bytes</span>
|
||||
<span class="plain-syntax"> ---- rule_family_data 400 objects, 147200 bytes</span>
|
||||
<span class="plain-syntax"> ---- index_lexicon_entry 395 objects, 142200 bytes</span>
|
||||
<span class="plain-syntax"> ---- nonterminal 759 objects, 139656 bytes</span>
|
||||
<span class="plain-syntax"> ---- compilation_subtask 1664 objects, 133120 bytes</span>
|
||||
<span class="plain-syntax"> ---- hierarchy_location 842 objects, 127984 bytes</span>
|
||||
<span class="plain-syntax"> ---- nascent_array 1969 objects, 126016 bytes</span>
|
||||
<span class="plain-syntax"> ---- hierarchy_location 845 objects, 128440 bytes</span>
|
||||
<span class="plain-syntax"> ---- nascent_array 1947 objects, 124608 bytes</span>
|
||||
<span class="plain-syntax"> ---- documentation_ref 1274 objects, 112112 bytes</span>
|
||||
<span class="plain-syntax"> ---- inference 1703 objects, 108992 bytes</span>
|
||||
<span class="plain-syntax"> ---- imperative_defn 1376 objects, 99072 bytes</span>
|
||||
<span class="plain-syntax"> ---- anl_entry_array 2 x 1000 = 2000 objects, 96064 bytes</span>
|
||||
<span class="plain-syntax"> ---- noun_usage 2401 objects, 96040 bytes</span>
|
||||
<span class="plain-syntax"> ---- preposition 273 objects, 87360 bytes</span>
|
||||
<span class="plain-syntax"> ---- inter_tree 6 objects, 84000 bytes</span>
|
||||
<span class="plain-syntax"> ---- inter_tree 6 objects, 84144 bytes</span>
|
||||
<span class="plain-syntax"> ---- lexical_cluster 2516 objects, 80512 bytes</span>
|
||||
<span class="plain-syntax"> ---- pcalc_term_array 2 x 1000 = 2000 objects, 80064 bytes</span>
|
||||
<span class="plain-syntax"> ---- kind_variable_declaration 1652 objects, 79296 bytes</span>
|
||||
|
@ -232,14 +232,14 @@ represent less than 1/1000th of the total.
|
|||
<span class="plain-syntax"> ---- method 335 objects, 16080 bytes</span>
|
||||
<span class="plain-syntax"> ---- understanding_reference_array 2 x 100 = 200 objects, 16064 bytes</span>
|
||||
<span class="plain-syntax"> ---- match_avinue_array 1 x 1000 objects, 16032 bytes</span>
|
||||
<span class="plain-syntax"> ---- action_name_list_array 1 x 1000 objects, 16032 bytes</span>
|
||||
<span class="plain-syntax"> ---- linked_list_item_array 1 x 1000 objects, 16032 bytes</span>
|
||||
<span class="plain-syntax"> ---- action_name_list_array 1 x 1000 objects, 16032 bytes</span>
|
||||
<span class="plain-syntax"> ---- to_phrase_request 59 objects, 15576 bytes</span>
|
||||
<span class="plain-syntax"> ---- adjective 137 objects, 14248 bytes</span>
|
||||
<span class="plain-syntax"> ---- booking_list 407 objects, 13024 bytes</span>
|
||||
<span class="plain-syntax"> ---- adjective_iname_holder 320 objects, 12800 bytes</span>
|
||||
<span class="plain-syntax"> ---- pathname 292 objects, 11680 bytes</span>
|
||||
<span class="plain-syntax"> ---- stopwatch_timer 140 objects, 11200 bytes</span>
|
||||
<span class="plain-syntax"> ---- stopwatch_timer 129 objects, 10320 bytes</span>
|
||||
<span class="plain-syntax"> ---- filename 208 objects, 8320 bytes</span>
|
||||
<span class="plain-syntax"> ---- uniqueness_count 325 objects, 7800 bytes</span>
|
||||
<span class="plain-syntax"> ---- equation_node 68 objects, 7616 bytes</span>
|
||||
|
@ -263,14 +263,14 @@ represent less than 1/1000th of the total.
|
|||
<span class="plain-syntax"> ---- command_line_switch 43 objects, 3440 bytes</span>
|
||||
<span class="plain-syntax"> ---- property_setting_bp_data 84 objects, 3360 bytes</span>
|
||||
<span class="plain-syntax"> ---- method_set 102 objects, 3264 bytes</span>
|
||||
<span class="plain-syntax"> ---- instance_usage_array 1 x 200 objects, 3232 bytes</span>
|
||||
<span class="plain-syntax"> ---- kind_constructor_comparison_schema_array 1 x 100 objects, 3232 bytes</span>
|
||||
<span class="plain-syntax"> ---- instance_usage_array 1 x 200 objects, 3232 bytes</span>
|
||||
<span class="plain-syntax"> ---- compatibility_specification 66 objects, 3168 bytes</span>
|
||||
<span class="plain-syntax"> ---- definition 44 objects, 3168 bytes</span>
|
||||
<span class="plain-syntax"> ---- submodule_request 79 objects, 3160 bytes</span>
|
||||
<span class="plain-syntax"> ---- inform_extension 19 objects, 3040 bytes</span>
|
||||
<span class="plain-syntax"> ---- either_or_property_data 62 objects, 2976 bytes</span>
|
||||
<span class="plain-syntax"> ---- property_of_value_storage 93 objects, 2976 bytes</span>
|
||||
<span class="plain-syntax"> ---- either_or_property_data 62 objects, 2976 bytes</span>
|
||||
<span class="plain-syntax"> ---- use_option 29 objects, 2552 bytes</span>
|
||||
<span class="plain-syntax"> ---- part_of_inference_data 79 objects, 2528 bytes</span>
|
||||
<span class="plain-syntax"> ---- parentage_inference_data 79 objects, 2528 bytes</span>
|
||||
|
@ -295,97 +295,99 @@ represent less than 1/1000th of the total.
|
|||
<span class="plain-syntax"> ---- invocation_options_array 1 x 100 objects, 1224 bytes</span>
|
||||
<span class="plain-syntax"> ---- direction_inference_data 30 objects, 1200 bytes</span>
|
||||
<span class="plain-syntax"> ---- quantifier 16 objects, 1024 bytes</span>
|
||||
<span class="plain-syntax"> ---- inter_tree_location_list 24 objects, 960 bytes</span>
|
||||
<span class="plain-syntax"> ---- runtime_kind_structure 13 objects, 936 bytes</span>
|
||||
<span class="plain-syntax"> ---- inter_tree_location_list 23 objects, 920 bytes</span>
|
||||
<span class="plain-syntax"> ---- pipeline_stage 19 objects, 912 bytes</span>
|
||||
<span class="plain-syntax"> ---- inbuild_requirement 22 objects, 880 bytes</span>
|
||||
<span class="plain-syntax"> ---- control_structure_phrase 12 objects, 864 bytes</span>
|
||||
<span class="plain-syntax"> ---- code_generation 1 object, 864 bytes</span>
|
||||
<span class="plain-syntax"> ---- control_structure_phrase 12 objects, 864 bytes</span>
|
||||
<span class="plain-syntax"> ---- cached_understanding 21 objects, 840 bytes</span>
|
||||
<span class="plain-syntax"> ---- submodule_identity 26 objects, 832 bytes</span>
|
||||
<span class="plain-syntax"> ---- phrase_option_array 1 x 100 objects, 824 bytes</span>
|
||||
<span class="plain-syntax"> ---- target_vm 6 objects, 816 bytes</span>
|
||||
<span class="plain-syntax"> ---- generated_segment 25 objects, 800 bytes</span>
|
||||
<span class="plain-syntax"> ---- inter_data_type 14 objects, 784 bytes</span>
|
||||
<span class="plain-syntax"> ---- tree_inventory_item 18 objects, 720 bytes</span>
|
||||
<span class="plain-syntax"> ---- inform_language 6 objects, 672 bytes</span>
|
||||
<span class="plain-syntax"> ---- inter_warehouse_room 10 objects, 640 bytes</span>
|
||||
<span class="plain-syntax"> ---- relation_guard 5 objects, 640 bytes</span>
|
||||
<span class="plain-syntax"> ---- I6T_intervention 8 objects, 640 bytes</span>
|
||||
<span class="plain-syntax"> ---- relation_guard 5 objects, 640 bytes</span>
|
||||
<span class="plain-syntax"> ---- inbuild_search_result 15 objects, 600 bytes</span>
|
||||
<span class="plain-syntax"> ---- named_rulebook_outcome 15 objects, 600 bytes</span>
|
||||
<span class="plain-syntax"> ---- rulebook_outcome 17 objects, 544 bytes</span>
|
||||
<span class="plain-syntax"> ---- small_word_set 11 objects, 528 bytes</span>
|
||||
<span class="plain-syntax"> ---- inform_kit 5 objects, 520 bytes</span>
|
||||
<span class="plain-syntax"> ---- implication 13 objects, 520 bytes</span>
|
||||
<span class="plain-syntax"> ---- inform_kit 5 objects, 520 bytes</span>
|
||||
<span class="plain-syntax"> ---- inference_family 11 objects, 440 bytes</span>
|
||||
<span class="plain-syntax"> ---- i6_memory_setting 13 objects, 416 bytes</span>
|
||||
<span class="plain-syntax"> ---- equation 4 objects, 416 bytes</span>
|
||||
<span class="plain-syntax"> ---- dval_written 10 objects, 400 bytes</span>
|
||||
<span class="plain-syntax"> ---- i6_memory_setting 13 objects, 416 bytes</span>
|
||||
<span class="plain-syntax"> ---- module_package 10 objects, 400 bytes</span>
|
||||
<span class="plain-syntax"> ---- article_usage 8 objects, 384 bytes</span>
|
||||
<span class="plain-syntax"> ---- dval_written 10 objects, 400 bytes</span>
|
||||
<span class="plain-syntax"> ---- bp_family 12 objects, 384 bytes</span>
|
||||
<span class="plain-syntax"> ---- article_usage 8 objects, 384 bytes</span>
|
||||
<span class="plain-syntax"> ---- source_file 5 objects, 360 bytes</span>
|
||||
<span class="plain-syntax"> ---- inbuild_genre 7 objects, 336 bytes</span>
|
||||
<span class="plain-syntax"> ---- door_dir_notice 5 objects, 320 bytes</span>
|
||||
<span class="plain-syntax"> ---- grammatical_category 8 objects, 320 bytes</span>
|
||||
<span class="plain-syntax"> ---- pronoun 8 objects, 320 bytes</span>
|
||||
<span class="plain-syntax"> ---- build_step 4 objects, 288 bytes</span>
|
||||
<span class="plain-syntax"> ---- grammatical_category 8 objects, 320 bytes</span>
|
||||
<span class="plain-syntax"> ---- door_dir_notice 5 objects, 320 bytes</span>
|
||||
<span class="plain-syntax"> ---- up_family 9 objects, 288 bytes</span>
|
||||
<span class="plain-syntax"> ---- door_to_notice 5 objects, 280 bytes</span>
|
||||
<span class="plain-syntax"> ---- build_step 4 objects, 288 bytes</span>
|
||||
<span class="plain-syntax"> ---- explicit_bp_data 5 objects, 280 bytes</span>
|
||||
<span class="plain-syntax"> ---- door_to_notice 5 objects, 280 bytes</span>
|
||||
<span class="plain-syntax"> ---- inform_pipeline 4 objects, 256 bytes</span>
|
||||
<span class="plain-syntax"> ---- verb_usage_tier 5 objects, 240 bytes</span>
|
||||
<span class="plain-syntax"> ---- tree_inventory 1 object, 232 bytes</span>
|
||||
<span class="plain-syntax"> ---- adjective_meaning_family 7 objects, 224 bytes</span>
|
||||
<span class="plain-syntax"> ---- release_instructions 1 object, 208 bytes</span>
|
||||
<span class="plain-syntax"> ---- test_scenario 1 object, 208 bytes</span>
|
||||
<span class="plain-syntax"> ---- compilation_unit 5 objects, 200 bytes</span>
|
||||
<span class="plain-syntax"> ---- release_instructions 1 object, 208 bytes</span>
|
||||
<span class="plain-syntax"> ---- build_skill 5 objects, 200 bytes</span>
|
||||
<span class="plain-syntax"> ---- plural_dictionary_entry 4 objects, 192 bytes</span>
|
||||
<span class="plain-syntax"> ---- compilation_unit 5 objects, 200 bytes</span>
|
||||
<span class="plain-syntax"> ---- kit_dependency 4 objects, 192 bytes</span>
|
||||
<span class="plain-syntax"> ---- plural_dictionary_entry 4 objects, 192 bytes</span>
|
||||
<span class="plain-syntax"> ---- inform_project 1 object, 176 bytes</span>
|
||||
<span class="plain-syntax"> ---- code_generation_target 4 objects, 160 bytes</span>
|
||||
<span class="plain-syntax"> ---- imperative_defn_family 4 objects, 160 bytes</span>
|
||||
<span class="plain-syntax"> ---- inference_subject_family 5 objects, 160 bytes</span>
|
||||
<span class="plain-syntax"> ---- link_instruction 4 objects, 160 bytes</span>
|
||||
<span class="plain-syntax"> ---- inter_architecture 4 objects, 160 bytes</span>
|
||||
<span class="plain-syntax"> ---- element_activation 4 objects, 128 bytes</span>
|
||||
<span class="plain-syntax"> ---- code_generation_target 4 objects, 160 bytes</span>
|
||||
<span class="plain-syntax"> ---- link_instruction 4 objects, 160 bytes</span>
|
||||
<span class="plain-syntax"> ---- codegen_pipeline 1 object, 128 bytes</span>
|
||||
<span class="plain-syntax"> ---- element_activation 4 objects, 128 bytes</span>
|
||||
<span class="plain-syntax"> ---- inbuild_nest 3 objects, 120 bytes</span>
|
||||
<span class="plain-syntax"> ---- local_block_value 2 objects, 112 bytes</span>
|
||||
<span class="plain-syntax"> ---- inform_kit_ittt 2 objects, 96 bytes</span>
|
||||
<span class="plain-syntax"> ---- compile_task_data 1 object, 80 bytes</span>
|
||||
<span class="plain-syntax"> ---- article 2 objects, 80 bytes</span>
|
||||
<span class="plain-syntax"> ---- group_together_function 2 objects, 80 bytes</span>
|
||||
<span class="plain-syntax"> ---- figures_data 1 object, 56 bytes</span>
|
||||
<span class="plain-syntax"> ---- compile_task_data 1 object, 80 bytes</span>
|
||||
<span class="plain-syntax"> ---- inter_warehouse 1 object, 56 bytes</span>
|
||||
<span class="plain-syntax"> ---- figures_data 1 object, 56 bytes</span>
|
||||
<span class="plain-syntax"> ---- build_methodology 1 object, 56 bytes</span>
|
||||
<span class="plain-syntax"> ---- star_invention 1 object, 48 bytes</span>
|
||||
<span class="plain-syntax"> ---- HTML_file_state 1 object, 48 bytes</span>
|
||||
<span class="plain-syntax"> ---- kind_template_definition 1 object, 40 bytes</span>
|
||||
<span class="plain-syntax"> ---- by_routine_bp_data 1 object, 40 bytes</span>
|
||||
<span class="plain-syntax"> ---- loop_over_scope 1 object, 40 bytes</span>
|
||||
<span class="plain-syntax"> ---- parse_name_notice 1 object, 40 bytes</span>
|
||||
<span class="plain-syntax"> ---- by_routine_bp_data 1 object, 40 bytes</span>
|
||||
<span class="plain-syntax"> ---- kind_template_definition 1 object, 40 bytes</span>
|
||||
|
||||
<span class="plain-syntax">36.3% was used for memory not allocated for objects:</span>
|
||||
<span class="plain-syntax">36.0% was used for memory not allocated for objects:</span>
|
||||
|
||||
<span class="plain-syntax"> 16.9% text stream storage 51872780 bytes in 345837 claims</span>
|
||||
<span class="plain-syntax"> 3.6% dictionary storage 11146240 bytes in 19968 claims</span>
|
||||
<span class="plain-syntax"> ---- sorting 968 bytes in 3 claims</span>
|
||||
<span class="plain-syntax"> 16.8% text stream storage 52318268 bytes in 349025 claims</span>
|
||||
<span class="plain-syntax"> 3.6% dictionary storage 11245056 bytes in 20157 claims</span>
|
||||
<span class="plain-syntax"> ---- sorting 880 bytes in 3 claims</span>
|
||||
<span class="plain-syntax"> 2.3% source text 7200000 bytes in 3 claims</span>
|
||||
<span class="plain-syntax"> 3.5% source text details 10800000 bytes in 2 claims</span>
|
||||
<span class="plain-syntax"> 3.4% source text details 10800000 bytes in 2 claims</span>
|
||||
<span class="plain-syntax"> ---- linguistic stock array 81920 bytes in 2 claims</span>
|
||||
<span class="plain-syntax"> ---- small word set array 105600 bytes in 22 claims</span>
|
||||
<span class="plain-syntax"> 0.8% inter symbols storage 2622160 bytes in 15986 claims</span>
|
||||
<span class="plain-syntax"> 0.8% inter symbols storage 2648128 bytes in 16173 claims</span>
|
||||
<span class="plain-syntax"> 5.4% inter bytecode storage 16802796 bytes in 14 claims</span>
|
||||
<span class="plain-syntax"> 2.8% inter links storage 8750208 bytes in 246 claims</span>
|
||||
<span class="plain-syntax"> ---- inter tree location list storage 142592 bytes in 23 claims</span>
|
||||
<span class="plain-syntax"> ---- inter tree location list storage 146432 bytes in 24 claims</span>
|
||||
<span class="plain-syntax"> 0.5% instance-of-kind counting 1695204 bytes in 1 claim</span>
|
||||
<span class="plain-syntax"> ---- compilation workspace for objects 21856 bytes in 25 claims</span>
|
||||
<span class="plain-syntax"> ---- lists for type-checking invocations 16000 bytes in 1 claim</span>
|
||||
<span class="plain-syntax"> ---- code generation workspace for objects 9192 bytes in 9 claims</span>
|
||||
<span class="plain-syntax"> ---- emitter array storage 154368 bytes in 2036 claims</span>
|
||||
|
||||
<span class="plain-syntax">19.7% was overhead - 60502056 bytes = 59084K = 57 MB</span>
|
||||
<span class="plain-syntax">20.3% was overhead - 63182320 bytes = 61701K = 60 MB</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. Preform grammar. </b>The full annotated description of the Preform grammar (see <a href="../words-module/4-ap.html" class="internal">About Preform (in words)</a>),
|
||||
with optimisation details and hit/miss statistics added, is also long: it's
|
||||
|
|
|
@ -92,7 +92,7 @@ usages in a sentence.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">linguistic_stock_item</span><span class="plain-syntax"> *</span><span class="identifier-syntax">in_stock</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">VERB_COMPILATION_LINGUISTICS_CALLBACK</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">verb_compilation_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">verb_compilation</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">verb_compilation_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
|
|
|
@ -129,6 +129,19 @@ be turned into one of the following structures:
|
|||
<span class="plain-syntax"> </span><a href="1-sc.html#SP9" class="function-link"><span class="function-syntax">Stock::write_usage</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">vu</span><span class="plain-syntax">-></span><span class="element-syntax">usage</span><span class="plain-syntax">, </span><span class="identifier-syntax">SENSE_LCW</span><span class="plain-syntax">+</span><span class="identifier-syntax">VOICE_LCW</span><span class="plain-syntax">+</span><span class="identifier-syntax">TENSE_LCW</span><span class="plain-syntax">+</span><span class="identifier-syntax">PERSON_LCW</span><span class="plain-syntax">+</span><span class="identifier-syntax">NUMBER_LCW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"}"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">VerbUsages::log_all</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vu</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"The current S-grammar has the following verb and preposition usages:\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">, </span><span class="reserved-syntax">verb_usage</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vu.html#SP2" class="function-link"><span class="function-syntax">VerbUsages::write_usage</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">DL</span><span class="plain-syntax">, </span><span class="identifier-syntax">vu</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="reserved-syntax">preposition</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"$p\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">prep</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. Search list and tiers. </b>A "search list" of verb usages indicates what order the possibilities should be
|
||||
checked in. The simpler list is in order of word count:
|
||||
|
|
|
@ -168,6 +168,8 @@ context — see <a href="2-nns.html#SP14" class="internal">Nouns::disambigua
|
|||
</li><li>● <span class="extract"><span class="extract-syntax">TRACING_LINGUISTICS_CALLBACK</span></span>, if provided, can return <span class="extract"><span class="extract-syntax">TRUE</span></span> to allow
|
||||
extensive details of verb parsing to be copied to the debugging log. See
|
||||
<a href="4-vp.html#SP3" class="internal">VerbPhrases::tracing</a>.
|
||||
</li><li>● <span class="extract"><span class="extract-syntax">VERB_COMPILATION_LINGUISTICS_CALLBACK</span></span>, if provided, allows the <span class="extract"><span class="extract-syntax">compilation_data</span></span>
|
||||
part of a <span class="extract"><span class="extract-syntax">verb</span></span> to be initialised. See <a href="3-vrb.html#SP3" class="internal">Verbs::new_verb</a>.
|
||||
</li><li>● <span class="extract"><span class="extract-syntax">VERB_MEANING_REVERSAL_LINGUISTICS_CALLBACK</span></span> reverses the meaning of a verb:
|
||||
in the sense that the reversal of "A knows B" would be "A is known by B",
|
||||
or in other words "B knows A". See <a href="3-vm.html#SP2" class="internal">VerbMeanings::reverse_VMT</a>.
|
||||
|
|
|
@ -92,7 +92,7 @@ function togglePopup(material_id) {
|
|||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ExternalFiles::production_line</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">debugging</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">stopwatch_timer</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sequence_timer</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">stage</span><span class="plain-syntax"> == </span><span class="identifier-syntax">INTER1_CSEQ</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTExternalFiles::arrays</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTExternalFiles::compile</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -334,8 +334,8 @@ by an unspecified other project, or by a project identified by its IFID.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">file_is_binary</span><span class="plain-syntax">; </span><span class="comment-syntax"> true or false</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">file_ownership</span><span class="plain-syntax">; </span><span class="comment-syntax"> one of the </span><span class="extract"><span class="extract-syntax">OWNED_BY_*</span></span><span class="comment-syntax"> values above</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IFID_of_owner</span><span class="plain-syntax">; </span><span class="comment-syntax"> if we know that</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">external_file_compilation_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">where_created</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">files_data</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
|
@ -360,7 +360,7 @@ manages to make a figure, a problem message is thrown.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">fd</span><span class="plain-syntax">-></span><span class="element-syntax">file_is_binary</span><span class="plain-syntax"> = </span><span class="identifier-syntax">binary</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fd</span><span class="plain-syntax">-></span><span class="element-syntax">file_ownership</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ownership</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fd</span><span class="plain-syntax">-></span><span class="element-syntax">IFID_of_owner</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">ifid_of_file</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fd</span><span class="plain-syntax">-></span><span class="element-syntax">compilation_data</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RTExternalFiles::new_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fd</span><span class="plain-syntax">-></span><span class="element-syntax">where_created</span><span class="plain-syntax"> = </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fd</span><span class="plain-syntax">-></span><span class="element-syntax">as_instance</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -507,7 +507,7 @@ turn by turn.
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="10-sc.html#SP5_2">§5.2</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="9-ef.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresscurrentchapter">10</li><li class="progresscurrent">sc</li><li class="progresssection"><a href="10-ts.html">ts</a></li><li class="progresssection"><a href="10-itc.html">itc</a></li><li class="progressnext"><a href="10-ts.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="9-se.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresscurrentchapter">10</li><li class="progresscurrent">sc</li><li class="progresssection"><a href="10-ts.html">ts</a></li><li class="progresssection"><a href="10-itc.html">itc</a></li><li class="progressnext"><a href="10-ts.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -92,7 +92,7 @@ stipulations on place and possessions attached.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">test_scenario</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure test_scenario is accessed in 3/uo, 4/rsp, 5/act, 5/rls, 5/vrb, 5/prp, 8/gpr, 10/sc and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure test_scenario is accessed in 3/uo, 4/rsp, 5/act, 5/ef, 5/rls, 5/vrb, 5/prp, 8/gpr, 10/sc and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
|
|
@ -92,7 +92,7 @@ enforced; it's fine to store arbitrary data with <span class="extract"><span cla
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::begin</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::begin</span></span>:<br/>List Literals - <a href="4-ll.html#SP1">§1</a>, <a href="4-ll.html#SP2">§2</a><br/>Text Literals - <a href="4-tl.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">§1</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Rules - <a href="5-rls.html#SP6_1_1">§6.1.1</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP18_1">§18.1</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1">§4.1</a>, <a href="5-rart.html#SP5">§5</a>, <a href="5-rart.html#SP8">§8</a>, <a href="5-rart.html#SP8_3">§8.3</a><br/>Naming - <a href="6-nmn.html#SP2">§2</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP2_2">§2.2</a>, <a href="6-tm.html#SP3">§3</a><br/>Actions - <a href="7-act.html#SP1">§1</a><br/>Parsing - <a href="8-prs.html#SP2">§2</a><br/>External Files - <a href="9-ef.html#SP1">§1</a><br/>Test Scripts - <a href="10-ts.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::begin</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::begin</span></span>:<br/>List Literals - <a href="4-ll.html#SP1">§1</a>, <a href="4-ll.html#SP2">§2</a><br/>Text Literals - <a href="4-tl.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">§1</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>External Files - <a href="5-ef.html#SP2_2">§2.2</a><br/>Rules - <a href="5-rls.html#SP6_1_1">§6.1.1</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP18_1">§18.1</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1">§4.1</a>, <a href="5-rart.html#SP5">§5</a>, <a href="5-rart.html#SP8">§8</a>, <a href="5-rart.html#SP8_3">§8.3</a><br/>Naming - <a href="6-nmn.html#SP2">§2</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP2_2">§2.2</a>, <a href="6-tm.html#SP3">§3</a><br/>Actions - <a href="7-act.html#SP1">§1</a><br/>Parsing - <a href="8-prs.html#SP2">§2</a><br/>Test Scripts - <a href="10-ts.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP9" class="function-link"><span class="function-syntax">EmitArrays::begin_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">;</span>
|
||||
|
@ -119,7 +119,7 @@ enforced; it's fine to store arbitrary data with <span class="extract"><span cla
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::begin_string</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::begin_string</span></span>:<br/>External Files - <a href="9-ef.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::begin_string</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::begin_string</span></span>:<br/>External Files - <a href="5-ef.html#SP2_1">§2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP9" class="function-link"><span class="function-syntax">EmitArrays::begin_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_iname_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">STRINGARRAY_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
|
@ -158,11 +158,11 @@ which would be a typesafe list in I7, so they can be absolutely any data,
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::numeric_entry</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::numeric_entry</span></span>:<br/>List Literals - <a href="4-ll.html#SP1">§1</a>, <a href="4-ll.html#SP2">§2</a>, <a href="4-ll.html#SP7_1">§7.1</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Rules - <a href="5-rls.html#SP6_1_1">§6.1.1</a>, <a href="5-rls.html#SP6_1_2">§6.1.2</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP18_1_1_1">§18.1.1.1</a>, <a href="5-rsfk.html#SP18_1_1_2">§18.1.1.2</a>, <a href="5-rsfk.html#SP22">§22</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1">§4.1</a>, <a href="5-rart.html#SP4_1_3">§4.1.3</a>, <a href="5-rart.html#SP5">§5</a>, <a href="5-rart.html#SP7">§7</a>, <a href="5-rart.html#SP8_2">§8.2</a>, <a href="5-rart.html#SP8_3">§8.3</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_1_1_1_1_4">§4.1.1.1.1.4</a>, <a href="5-rsft.html#SP4_2_3">§4.2.3</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP2_2">§2.2</a><br/>Actions - <a href="7-act.html#SP1">§1</a><br/>External Files - <a href="9-ef.html#SP1">§1</a><br/>Test Scripts - <a href="10-ts.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::numeric_entry</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::numeric_entry</span></span>:<br/>List Literals - <a href="4-ll.html#SP1">§1</a>, <a href="4-ll.html#SP2">§2</a>, <a href="4-ll.html#SP7_1">§7.1</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>External Files - <a href="5-ef.html#SP2_2">§2.2</a><br/>Rules - <a href="5-rls.html#SP6_1_1">§6.1.1</a>, <a href="5-rls.html#SP6_1_2">§6.1.2</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP18_1_1_1">§18.1.1.1</a>, <a href="5-rsfk.html#SP18_1_1_2">§18.1.1.2</a>, <a href="5-rsfk.html#SP22">§22</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1">§4.1</a>, <a href="5-rart.html#SP4_1_3">§4.1.3</a>, <a href="5-rart.html#SP5">§5</a>, <a href="5-rart.html#SP7">§7</a>, <a href="5-rart.html#SP8_2">§8.2</a>, <a href="5-rart.html#SP8_3">§8.3</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_1_1_1_1_4">§4.1.1.1.1.4</a>, <a href="5-rsft.html#SP4_2_3">§4.2.3</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP2_2">§2.2</a><br/>Actions - <a href="7-act.html#SP1">§1</a><br/>Test Scripts - <a href="10-ts.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP10" class="function-link"><span class="function-syntax">EmitArrays::entry_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::iname_entry</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::iname_entry</span></span>:<br/>List Literals - <a href="4-ll.html#SP2">§2</a>, <a href="4-ll.html#SP7_2">§7.2</a><br/>Text Literals - <a href="4-tl.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">§1</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Rules - <a href="5-rls.html#SP6_1_2">§6.1.2</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP11">§11</a>, <a href="5-rsfk.html#SP14">§14</a>, <a href="5-rsfk.html#SP22">§22</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1_2">§4.1.2</a>, <a href="5-rart.html#SP4_1_2_1">§4.1.2.1</a>, <a href="5-rart.html#SP4_1_3">§4.1.3</a>, <a href="5-rart.html#SP4_1_6">§4.1.6</a>, <a href="5-rart.html#SP5">§5</a>, <a href="5-rart.html#SP8_2">§8.2</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_1_1_1">§4.1.1.1</a>, <a href="5-rsft.html#SP4_1_1_1_1_3">§4.1.1.1.1.3</a>, <a href="5-rsft.html#SP4_1_1_1_1_5">§4.1.1.1.1.5</a><br/>Naming - <a href="6-nmn.html#SP2">§2</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP2_2">§2.2</a>, <a href="6-tm.html#SP3">§3</a><br/>Command Grammar Lines - <a href="8-cgl.html#SP2">§2</a>, <a href="8-cgl.html#SP5">§5</a>, <a href="8-cgl.html#SP7">§7</a>, <a href="8-cgl.html#SP10">§10</a><br/>Noun Filter Tokens - <a href="8-nft.html#SP3">§3</a><br/>External Files - <a href="9-ef.html#SP1">§1</a><br/>Test Scripts - <a href="10-ts.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::iname_entry</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::iname_entry</span></span>:<br/>List Literals - <a href="4-ll.html#SP2">§2</a>, <a href="4-ll.html#SP7_2">§7.2</a><br/>Text Literals - <a href="4-tl.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">§1</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>External Files - <a href="5-ef.html#SP2_2">§2.2</a><br/>Rules - <a href="5-rls.html#SP6_1_2">§6.1.2</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP11">§11</a>, <a href="5-rsfk.html#SP14">§14</a>, <a href="5-rsfk.html#SP22">§22</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1_2">§4.1.2</a>, <a href="5-rart.html#SP4_1_2_1">§4.1.2.1</a>, <a href="5-rart.html#SP4_1_3">§4.1.3</a>, <a href="5-rart.html#SP4_1_6">§4.1.6</a>, <a href="5-rart.html#SP5">§5</a>, <a href="5-rart.html#SP8_2">§8.2</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_1_1_1">§4.1.1.1</a>, <a href="5-rsft.html#SP4_1_1_1_1_3">§4.1.1.1.1.3</a>, <a href="5-rsft.html#SP4_1_1_1_1_5">§4.1.1.1.1.5</a><br/>Naming - <a href="6-nmn.html#SP2">§2</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP2_2">§2.2</a>, <a href="6-tm.html#SP3">§3</a><br/>Command Grammar Lines - <a href="8-cgl.html#SP2">§2</a>, <a href="8-cgl.html#SP5">§5</a>, <a href="8-cgl.html#SP7">§7</a>, <a href="8-cgl.html#SP10">§10</a><br/>Noun Filter Tokens - <a href="8-nft.html#SP3">§3</a><br/>Test Scripts - <a href="10-ts.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">alias</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">alias</span><span class="plain-syntax"> = </span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::get_veneer_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NOTHING_VSYMB</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">alias</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
|
@ -171,11 +171,11 @@ which would be a typesafe list in I7, so they can be absolutely any data,
|
|||
<span class="plain-syntax"> </span><a href="2-ea.html#SP10" class="function-link"><span class="function-syntax">EmitArrays::entry_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::null_entry</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::null_entry</span></span>:<br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Rules - <a href="5-rls.html#SP6_1_5">§6.1.5</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1">§4.1</a>, <a href="5-rart.html#SP5">§5</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_1_1_1_1_3">§4.1.1.1.1.3</a><br/>External Files - <a href="9-ef.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::null_entry</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::null_entry</span></span>:<br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>External Files - <a href="5-ef.html#SP2_2">§2.2</a><br/>Rules - <a href="5-rls.html#SP6_1_5">§6.1.5</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1">§4.1</a>, <a href="5-rart.html#SP5">§5</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_1_1_1_1_3">§4.1.1.1.1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">NULL_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::text_entry</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::text_entry</span></span>:<br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1_1">§4.1.1</a>, <a href="5-rart.html#SP4_1_5">§4.1.5</a>, <a href="5-rart.html#SP5">§5</a><br/>External Files - <a href="9-ef.html#SP1">§1</a><br/>Test Scripts - <a href="10-ts.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">content</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::text_entry</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::text_entry</span></span>:<br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>External Files - <a href="5-ef.html#SP2_1">§2.1</a>, <a href="5-ef.html#SP2_2">§2.2</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1_1">§4.1.1</a>, <a href="5-rart.html#SP4_1_5">§4.1.5</a>, <a href="5-rart.html#SP5">§5</a><br/>Test Scripts - <a href="10-ts.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">content</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">v1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::text_value</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), &</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v2</span><span class="plain-syntax">, </span><span class="identifier-syntax">content</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP10" class="function-link"><span class="function-syntax">EmitArrays::entry_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax">);</span>
|
||||
|
@ -213,7 +213,7 @@ difference to compiled code.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::end</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::end</span></span>:<br/>List Literals - <a href="4-ll.html#SP1">§1</a>, <a href="4-ll.html#SP2">§2</a><br/>Text Literals - <a href="4-tl.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">§1</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Rules - <a href="5-rls.html#SP6_1_5">§6.1.5</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP18_1">§18.1</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1">§4.1</a>, <a href="5-rart.html#SP4_1_2">§4.1.2</a>, <a href="5-rart.html#SP5">§5</a>, <a href="5-rart.html#SP8">§8</a>, <a href="5-rart.html#SP8_3">§8.3</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_1_1_1">§4.1.1.1</a>, <a href="5-rsft.html#SP4_1_1_1_1">§4.1.1.1.1</a>, <a href="5-rsft.html#SP4_2">§4.2</a><br/>Naming - <a href="6-nmn.html#SP2">§2</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP2_2">§2.2</a>, <a href="6-tm.html#SP3">§3</a><br/>Actions - <a href="7-act.html#SP1">§1</a><br/>Parsing - <a href="8-prs.html#SP2">§2</a><br/>Command Grammars - <a href="8-cg.html#SP7">§7</a><br/>External Files - <a href="9-ef.html#SP1">§1</a><br/>Test Scripts - <a href="10-ts.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::end</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::end</span></span>:<br/>List Literals - <a href="4-ll.html#SP1">§1</a>, <a href="4-ll.html#SP2">§2</a><br/>Text Literals - <a href="4-tl.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">§1</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>External Files - <a href="5-ef.html#SP2_1">§2.1</a>, <a href="5-ef.html#SP2_2">§2.2</a><br/>Rules - <a href="5-rls.html#SP6_1_5">§6.1.5</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP18_1">§18.1</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1">§4.1</a>, <a href="5-rart.html#SP4_1_2">§4.1.2</a>, <a href="5-rart.html#SP5">§5</a>, <a href="5-rart.html#SP8">§8</a>, <a href="5-rart.html#SP8_3">§8.3</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_1_1_1">§4.1.1.1</a>, <a href="5-rsft.html#SP4_1_1_1_1">§4.1.1.1.1</a>, <a href="5-rsft.html#SP4_2">§4.2</a><br/>Naming - <a href="6-nmn.html#SP2">§2</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP2_2">§2.2</a>, <a href="6-tm.html#SP3">§3</a><br/>Actions - <a href="7-act.html#SP1">§1</a><br/>Parsing - <a href="8-prs.html#SP2">§2</a><br/>Command Grammars - <a href="8-cg.html#SP7">§7</a><br/>Test Scripts - <a href="10-ts.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP11" class="function-link"><span class="function-syntax">EmitArrays::end_inner</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Packaging::exit</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -330,7 +330,7 @@ it represents an actual number at run-time, the second if not:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::numeric_constant</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">Emit::numeric_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">§23</a><br/>Compilation Units - <a href="2-cu.html#SP2_1_2">§2.1.2</a><br/>Generic Module - <a href="3-gm.html#SP3">§3</a><br/>Completion Module - <a href="3-cm.html#SP1_3">§1.3</a><br/>Use Options - <a href="3-uo.html#SP1">§1</a>, <a href="3-uo.html#SP1_2">§1.2</a><br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Activities - <a href="5-act.html#SP6">§6</a><br/>Rules - <a href="5-rls.html#SP9">§9</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP18_3">§18.3</a>, <a href="5-rsfk.html#SP26">§26</a><br/>Properties - <a href="5-prp.html#SP6">§6</a><br/>Verbs at Run Time - <a href="5-vart.html#SP4">§4</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1">§4.1</a>, <a href="5-rart.html#SP8_3">§8.3</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP1">§1</a>, <a href="5-rsft.html#SP4_1_1_1_1_3">§4.1.1.1.1.3</a>, <a href="5-rsft.html#SP4_1_2">§4.1.2</a><br/>Chronology - <a href="5-chr.html#SP3_3">§3.3</a>, <a href="5-chr.html#SP7_1">§7.1</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP2_1">§2.1</a><br/>The Score - <a href="6-ts.html#SP1">§1</a><br/>Actions - <a href="7-act.html#SP1">§1</a><br/>Command Grammars - <a href="8-cg.html#SP1">§1</a>, <a href="8-cg.html#SP2">§2</a><br/>Figures - <a href="9-fgr.html#SP1">§1</a><br/>Sound Effects - <a href="9-se.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::numeric_constant</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">Emit::numeric_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">§23</a><br/>Compilation Units - <a href="2-cu.html#SP2_1_2">§2.1.2</a><br/>Generic Module - <a href="3-gm.html#SP3">§3</a><br/>Completion Module - <a href="3-cm.html#SP1_3">§1.3</a><br/>Use Options - <a href="3-uo.html#SP1">§1</a>, <a href="3-uo.html#SP1_2">§1.2</a><br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Activities - <a href="5-act.html#SP6">§6</a><br/>Chronology - <a href="5-chr.html#SP3_3">§3.3</a>, <a href="5-chr.html#SP7_1">§7.1</a><br/>Conjugations - <a href="5-cnj.html#SP12">§12</a><br/>Rules - <a href="5-rls.html#SP9">§9</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP18_3">§18.3</a>, <a href="5-rsfk.html#SP26">§26</a><br/>Properties - <a href="5-prp.html#SP6">§6</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1">§4.1</a>, <a href="5-rart.html#SP8_3">§8.3</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP1">§1</a>, <a href="5-rsft.html#SP4_1_1_1_1_3">§4.1.1.1.1.3</a>, <a href="5-rsft.html#SP4_1_2">§4.1.2</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP2_1">§2.1</a><br/>The Score - <a href="6-ts.html#SP1">§1</a><br/>Actions - <a href="7-act.html#SP1">§1</a><br/>Command Grammars - <a href="8-cg.html#SP1">§1</a>, <a href="8-cg.html#SP2">§2</a><br/>Figures - <a href="9-fgr.html#SP1">§1</a><br/>Sound Effects - <a href="9-se.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">int_interk</span><span class="plain-syntax">, </span><span class="identifier-syntax">INVALID_IANN</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
@ -342,7 +342,7 @@ it represents an actual number at run-time, the second if not:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">unchecked_interk</span><span class="plain-syntax">, </span><span class="identifier-syntax">HEX_IANN</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::named_numeric_constant_signed</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">Emit::named_numeric_constant_signed</span></span>:<br/>Generic Module - <a href="3-gm.html#SP3">§3</a><br/>Verbs at Run Time - <a href="5-vart.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::named_numeric_constant_signed</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">Emit::named_numeric_constant_signed</span></span>:<br/>Generic Module - <a href="3-gm.html#SP3">§3</a><br/>Conjugations - <a href="5-cnj.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">int_interk</span><span class="plain-syntax">, </span><span class="identifier-syntax">SIGNED_IANN</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
@ -380,7 +380,7 @@ it represents an actual number at run-time, the second if not:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::iname_constant</span><button class="popup" onclick="togglePopup('usagePopup25')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup25">Usage of <span class="code-font"><span class="function-syntax">Emit::iname_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">§23</a><br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Activities - <a href="5-act.html#SP6">§6</a><br/>Rules - <a href="5-rls.html#SP2">§2</a>, <a href="5-rls.html#SP6">§6</a>, <a href="5-rls.html#SP9">§9</a>, <a href="5-rls.html#SP11">§11</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP14">§14</a>, <a href="5-rsfk.html#SP18_3">§18.3</a><br/>Instance Counting - <a href="5-ic.html#SP9">§9</a><br/>Verbs at Run Time - <a href="5-vart.html#SP4">§4</a><br/>Relations at Run Time - <a href="5-rart.html#SP1">§1</a>, <a href="5-rart.html#SP4">§4</a>, <a href="5-rart.html#SP4_1">§4.1</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_1_1_1_1_3">§4.1.1.1.1.3</a><br/>Chronology - <a href="5-chr.html#SP4">§4</a>, <a href="5-chr.html#SP8">§8</a><br/>Naming - <a href="6-nmn.html#SP2">§2</a><br/>Spatial - <a href="6-spt.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP2_1">§2.1</a><br/>The Score - <a href="6-ts.html#SP1">§1</a><br/>Scenes - <a href="6-scn.html#SP2">§2</a>, <a href="6-scn.html#SP6">§6</a><br/>Actions - <a href="7-act.html#SP1">§1</a><br/>External Files - <a href="9-ef.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_iname</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::iname_constant</span><button class="popup" onclick="togglePopup('usagePopup25')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup25">Usage of <span class="code-font"><span class="function-syntax">Emit::iname_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">§23</a><br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Activities - <a href="5-act.html#SP6">§6</a><br/>Chronology - <a href="5-chr.html#SP4">§4</a>, <a href="5-chr.html#SP8">§8</a><br/>Conjugations - <a href="5-cnj.html#SP12">§12</a><br/>External Files - <a href="5-ef.html#SP2_3">§2.3</a><br/>Rules - <a href="5-rls.html#SP2">§2</a>, <a href="5-rls.html#SP6">§6</a>, <a href="5-rls.html#SP9">§9</a>, <a href="5-rls.html#SP11">§11</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP14">§14</a>, <a href="5-rsfk.html#SP18_3">§18.3</a><br/>Instance Counting - <a href="5-ic.html#SP9">§9</a><br/>Relations at Run Time - <a href="5-rart.html#SP1">§1</a>, <a href="5-rart.html#SP4">§4</a>, <a href="5-rart.html#SP4_1">§4.1</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_1_1_1_1_3">§4.1.1.1.1.3</a><br/>Naming - <a href="6-nmn.html#SP2">§2</a><br/>Spatial - <a href="6-spt.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP2_1">§2.1</a><br/>The Score - <a href="6-ts.html#SP1">§1</a><br/>Scenes - <a href="6-scn.html#SP2">§2</a>, <a href="6-scn.html#SP6">§6</a><br/>Actions - <a href="7-act.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_iname</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::define_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::kind_to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -78,7 +78,7 @@ function togglePopup(material_id) {
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">GenericModule::compile</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP4" class="function-link"><span class="function-syntax">Emit::rudimentary_kinds</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP2" class="function-link"><span class="function-syntax">GenericModule::compile_basic_constants</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="5-vart.html#SP4" class="function-link"><span class="function-syntax">RTVerbs::compile_generic_constants</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="5-cnj.html#SP1" class="function-link"><span class="function-syntax">RTVerbs::compile_generic_constants</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="8-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_generic_constants</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="6-tp.html#SP1" class="function-link"><span class="function-syntax">RTPlayer::compile_generic_constants</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="5-rart.html#SP3" class="function-link"><span class="function-syntax">RTRelations::compile_generic_constants</span></a><span class="plain-syntax">();</span>
|
||||
|
|
|
@ -69,7 +69,7 @@ function togglePopup(material_id) {
|
|||
<main role="main">
|
||||
<!--Weave of 'Activities' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Activities</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>Activities</b></li></ul></div>
|
||||
<p class="purpose">To compile a local _activity package for each activity in a compilation unit.</p>
|
||||
|
||||
<ul class="toc"><li><a href="5-act.html#SP1">§1. Compilation data</a></li><li><a href="5-act.html#SP5">§5. Compilation</a></li></ul><hr class="tocbar">
|
||||
|
@ -170,7 +170,7 @@ write 0.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-gt.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresscurrent">act</li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-es.html">es</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-vart.html">vart</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-rls.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-gt.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresscurrent">act</li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-cnj.html">cnj</a></li><li class="progresssection"><a href="5-eqt.html">eqt</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-adj.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -83,7 +83,7 @@ MathJax = {
|
|||
<main role="main">
|
||||
<!--Weave of 'Adjectives' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Adjectives</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>Adjectives</b></li></ul></div>
|
||||
<p class="purpose">To compile a local _adjective package for each adjective in a compilation unit, and a local |_adjective_phrase| package for each one given a "Definition:".</p>
|
||||
|
||||
<ul class="toc"><li><a href="5-adj.html#SP1">§1. Compilation data</a></li><li><a href="5-adj.html#SP5">§5. Compilation</a></li><li><a href="5-adj.html#SP8">§8. Invocation</a></li><li><a href="5-adj.html#SP9">§9. Adjectival phrase packages</a></li><li><a href="5-adj.html#SP10">§10. Compiling tasks for adjectives defined by I7 or Inter code</a></li></ul><hr class="tocbar">
|
||||
|
@ -104,7 +104,7 @@ MathJax = {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">adjective_iname_holder</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure adjective_compilation_data is accessed in 5/vart and here.</li><li>The structure adjective_iname_holder is private to this section.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure adjective_compilation_data is private to this section.</li><li>The structure adjective_iname_holder is private to this section.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>This is added in the <a href="../linguistics-module/index.html" class="internal">linguistics</a> module, where <span class="extract"><span class="extract-syntax">adjective</span></span> is defined.
|
||||
</p>
|
||||
|
||||
|
@ -590,7 +590,7 @@ instead we must generate code directly, bypassing schemas altogether.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-ic.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-es.html">es</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresscurrent">adj</li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-vart.html">vart</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-ni.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-act.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresscurrent">adj</li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-cnj.html">cnj</a></li><li class="progresssection"><a href="5-eqt.html">eqt</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-chr.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -69,7 +69,7 @@ function togglePopup(material_id) {
|
|||
<main role="main">
|
||||
<!--Weave of 'Chronology' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Chronology</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>Chronology</b></li></ul></div>
|
||||
<p class="purpose">To compile a local _past_condition package for each condition referring to things happening in the past, and similar _action_history_condition packages for conditions referring to actions having occurred before.</p>
|
||||
|
||||
<ul class="toc"><li><a href="5-chr.html#SP1">§1. Plugin</a></li><li><a href="5-chr.html#SP2">§2. Past tense conditions</a></li><li><a href="5-chr.html#SP6">§6. Action history conditions</a></li><li><a href="5-chr.html#SP9">§9. Utility</a></li></ul><hr class="tocbar">
|
||||
|
@ -551,7 +551,7 @@ the pattern, and otherwise false.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-rsft.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-es.html">es</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-vart.html">vart</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresscurrent">chr</li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="6-nmn.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-adj.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresscurrent">chr</li><li class="progresssection"><a href="5-cnj.html">cnj</a></li><li class="progresssection"><a href="5-eqt.html">eqt</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-cnj.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Verbs at Run Time</title>
|
||||
<title>Conjugations</title>
|
||||
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
|
@ -67,123 +67,18 @@ function togglePopup(material_id) {
|
|||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Verbs at Run Time' generated by Inweb-->
|
||||
<!--Weave of 'Conjugations' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Verbs at Run Time</b></li></ul></div>
|
||||
<p class="purpose">To provide run-time access to verbs and their conjugations.</p>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>Conjugations</b></li></ul></div>
|
||||
<p class="purpose">To compile local _verb, _modal_verb and _verb_form packages for each verb created in a compilation unit, which together make up its conjuugations package.</p>
|
||||
|
||||
<ul class="toc"><li><a href="5-vart.html#SP3">§3. Runtime conjugation</a></li><li><a href="5-vart.html#SP6">§6. Debug log</a></li><li><a href="5-vart.html#SP7">§7. Index tabulation</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="5-cnj.html#SP1">§1. The generic/conjugations package</a></li><li><a href="5-cnj.html#SP2">§2. Compilation data for verbs</a></li><li><a href="5-cnj.html#SP5">§5. Compilation data for conjgations</a></li><li><a href="5-cnj.html#SP7">§7. Compilation</a></li><li><a href="5-cnj.html#SP8">§8. Invocation as inflected text</a></li><li><a href="5-cnj.html#SP9">§9. Compilation data for verb forms</a></li><li><a href="5-cnj.html#SP11">§11. Compilation</a></li><li><a href="5-cnj.html#SP13">§13. Utility functions</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">verb_compilation_data</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">verb_package</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">verb_compilation_data</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">verb_form_compilation_data</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf_package</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf_iname</span><span class="plain-syntax">; </span><span class="comment-syntax"> routine to conjugate this</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">where_vf_created</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">verb_form_compilation_data</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure verb_compilation_data is private to this section.</li><li>The structure verb_form_compilation_data is private to this section.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b></p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">VERB_COMPILATION_LINGUISTICS_CALLBACK</span><span class="plain-syntax"> </span><a href="5-vart.html#SP2" class="function-link"><span class="function-syntax">RTVerbs::initialise_verb</span></a>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">VERB_FORM_COMPILATION_LINGUISTICS_CALLBACK</span><span class="plain-syntax"> </span><a href="5-vart.html#SP2" class="function-link"><span class="function-syntax">RTVerbs::initialise_verb_form</span></a>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::initialise_verb</span><span class="plain-syntax">(</span><span class="identifier-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">verb_package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::initialise_verb_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">VF</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VF</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">vf_package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VF</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">vf_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VF</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">where_vf_created</span><span class="plain-syntax"> = </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">RTVerbs::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">where</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">V</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no verb identity"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">verb_package</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">verb_package</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP19" class="function-link"><span class="function-syntax">Hierarchy::local_package_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERBS_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">where</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">verb_package</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTVerbs::form_iname</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTVerbs::form_iname</span></span>:<br/><a href="5-vart.html#SP4">§4</a>, <a href="5-vart.html#SP4_2">§4.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">vf_iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="5-vart.html#SP2" class="function-link"><span class="function-syntax">RTVerbs::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">underlying_verb</span><span class="plain-syntax">, </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">where_vf_created</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">vf_package</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP21" class="function-link"><span class="function-syntax">Hierarchy::package_within</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_FORMS_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">vf_iname</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">FORM_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">vf_package</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">vf_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. Runtime conjugation. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::ConjugateVerb_invoke_emit</span><span class="plain-syntax">(</span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">modal</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">negated</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cv_pos</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CV_POS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cv_neg</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CV_NEG_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">modal</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">negated</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Conjugation::conj_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">modal</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">cv_neg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PNTOVP_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORY_TENSE_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">Conjugation::conj_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Conjugation::conj_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">modal</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">cv_pos</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PNTOVP_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORY_TENSE_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">Conjugation::conj_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">negated</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Conjugation::conj_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">cv_neg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PNTOVP_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORY_TENSE_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Conjugation::conj_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">cv_pos</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PNTOVP_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORY_TENSE_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP9" class="function-link"><span class="function-syntax">EmitCode::ref_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">SAY__P_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_number</span></a><span class="plain-syntax">(1);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>Each VC is represented by a routine at run-time:
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. The generic/conjugations package. </b>A few constants before we get under way:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::verb_form_is_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">underlying_verb</span><span class="plain-syntax">-></span><span class="identifier-syntax">conjugation</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">vc</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">auxiliary_only</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">instance_of_verb</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> ((</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">preposition</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">underlying_verb</span><span class="plain-syntax"> != </span><span class="identifier-syntax">copular_verb</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::compile_generic_constants</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RTVerbs::compile_generic_constants</span></span>:<br/>Generic Module - <a href="3-gm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::compile_generic_constants</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTVerbs::compile_generic_constants</span></span>:<br/>Generic Module - <a href="3-gm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CV_POS_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CV_POS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CV_NEG_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CV_NEG_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CV_MODAL_INAME_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CV_MODAL_HL</span><span class="plain-syntax">);</span>
|
||||
|
@ -199,34 +94,105 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CV_MODAL_INAME_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CV_MEANING_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. Compilation data for verbs. </b>Each <span class="extract"><span class="extract-syntax">verb</span></span> object contains this data:
|
||||
</p>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::ConjugateVerb</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-vart.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Compile ConjugateVerb routine</span><span class="named-paragraph-number">4.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_form</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-vart.html#SP4" class="function-link"><span class="function-syntax">RTVerbs::verb_form_is_instance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-vart.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">Compile ConjugateVerbForm routine</span><span class="named-paragraph-number">4.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">VERB_COMPILATION_LINGUISTICS_CALLBACK</span><span class="plain-syntax"> </span><a href="5-cnj.html#SP2" class="function-link"><span class="function-syntax">RTVerbs::initialise_verb</span></a>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">verb_compilation_data</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">verb_package</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">verb_compilation_data</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_form</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-vart.html#SP4" class="function-link"><span class="function-syntax">RTVerbs::verb_form_is_instance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">md_iname</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">FORM_VALUE_MD_HL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">vf_package</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP11" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">md_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-vart.html#SP2" class="function-link"><span class="function-syntax">RTVerbs::form_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">md_iname</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">FORM_SORTING_MD_HL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">vf_package</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">md_iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::initialise_verb</span><span class="plain-syntax">(</span><span class="identifier-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">verb_package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4_1" class="paragraph-anchor"></a><b>§4.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile ConjugateVerb routine</span><span class="named-paragraph-number">4.1</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>The structure verb_compilation_data is private to this section.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>The package is created on demand. It will contain a conjugation function,
|
||||
and some subpackages for forms:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Conjugation::conj_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">));</span>
|
||||
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">RTVerbs::package</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RTVerbs::package</span></span>:<br/><a href="5-cnj.html#SP6">§6</a>, <a href="5-cnj.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">where</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">V</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no verb identity"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">verb_package</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">verb_package</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP19" class="function-link"><span class="function-syntax">Hierarchy::local_package_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERBS_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">where</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">verb_package</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>But modal verbs, which have no underlying <span class="extract"><span class="extract-syntax">verb</span></span> structure, are also given
|
||||
conjugation functions. Those have to live somewhere, so they go into free-standing
|
||||
<span class="extract"><span class="extract-syntax">_modal_verb</span></span> packages:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">RTVerbs::modal_package</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RTVerbs::modal_package</span></span>:<br/><a href="5-cnj.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">where</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-hrr.html#SP19" class="function-link"><span class="function-syntax">Hierarchy::local_package_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">MVERBS_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">where</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. Compilation data for conjgations. </b>Each <span class="extract"><span class="extract-syntax">verb_conjugation</span></span> object contains this data:
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">VC_COMPILATION_LINGUISTICS_CALLBACK</span><span class="plain-syntax"> </span><a href="5-cnj.html#SP5" class="function-link"><span class="function-syntax">RTVerbs::initialise_vc</span></a>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">verb_conjugation_compilation_data</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">where_vc_created</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">verb_conjugation_compilation_data</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::initialise_vc</span><span class="plain-syntax">(</span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">vc_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">where_vc_created</span><span class="plain-syntax"> = </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure verb_conjugation_compilation_data is private to this section.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b>This produces an iname for the conjugation function, whether it's for a
|
||||
modal or nonmodal verb:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTVerbs::conjugation_fn_iname</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">RTVerbs::conjugation_fn_iname</span></span>:<br/><a href="5-cnj.html#SP7">§7</a>, <a href="5-cnj.html#SP8">§8</a>, <a href="5-cnj.html#SP12_1">§12.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">vc_iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">vc_conjugates</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><a href="5-cnj.html#SP4" class="function-link"><span class="function-syntax">RTVerbs::modal_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">where_vc_created</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ANT</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">ANT</span><span class="plain-syntax">, </span><span class="string-syntax">"%A (modal)"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">tabulations</span><span class="plain-syntax">[</span><span class="identifier-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span><span class="identifier-syntax">vc_text</span><span class="plain-syntax">[</span><span class="identifier-syntax">IS_TENSE</span><span class="plain-syntax">][</span><span class="identifier-syntax">POSITIVE_SENSE</span><span class="plain-syntax">][</span><span class="identifier-syntax">THIRD_PERSON</span><span class="plain-syntax">]));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="constant-syntax">MVERB_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ANT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ANT</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="identifier-syntax">vc_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">MODAL_CONJUGATION_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="5-cnj.html#SP3" class="function-link"><span class="function-syntax">RTVerbs::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">vc_conjugates</span><span class="plain-syntax">, </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">where_vc_created</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ANT</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">ANT</span><span class="plain-syntax">, </span><span class="string-syntax">"to %A"</span><span class="plain-syntax">, &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">infinitive</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="constant-syntax">VERB_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ANT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ANT</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="identifier-syntax">vc_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">NONMODAL_CONJUGATION_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">vc_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. Compilation. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::compile_conjugations</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"conjugation of '%A'"</span><span class="plain-syntax">, &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">infinitive</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Sequence::queue</span><span class="plain-syntax">(&</span><a href="5-cnj.html#SP7" class="function-link"><span class="function-syntax">RTVerbs::vc_compilation_agent</span></a><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">STORE_POINTER_verb_conjugation</span><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::vc_compilation_agent</span><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_verb_conjugation</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><a href="5-cnj.html#SP6" class="function-link"><span class="function-syntax">RTVerbs::conjugation_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">fn_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_other_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"fn"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vp_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_other_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"vp"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_other_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"t"</span><span class="plain-syntax">);</span>
|
||||
|
@ -242,7 +208,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_number</span></a><span class="plain-syntax">(1);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="5-vart.html#SP5" class="function-link"><span class="function-syntax">RTVerbs::conj_from_wa</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">infinitive</span><span class="plain-syntax">), </span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">modal_to_s</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-cnj.html#SP13" class="function-link"><span class="function-syntax">RTVerbs::conj_from_wa</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">infinitive</span><span class="plain-syntax">), </span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">modal_to_s</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CASE_BIP</span><span class="plain-syntax">);</span>
|
||||
|
@ -250,7 +216,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_number</span></a><span class="plain-syntax">(2);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="5-vart.html#SP5" class="function-link"><span class="function-syntax">RTVerbs::conj_from_wa</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">past_participle</span><span class="plain-syntax">), </span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">modal_to_s</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-cnj.html#SP13" class="function-link"><span class="function-syntax">RTVerbs::conj_from_wa</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">past_participle</span><span class="plain-syntax">), </span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">modal_to_s</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CASE_BIP</span><span class="plain-syntax">);</span>
|
||||
|
@ -258,15 +224,16 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_number</span></a><span class="plain-syntax">(3);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="5-vart.html#SP5" class="function-link"><span class="function-syntax">RTVerbs::conj_from_wa</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">present_participle</span><span class="plain-syntax">), </span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">modal_to_s</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-cnj.html#SP13" class="function-link"><span class="function-syntax">RTVerbs::conj_from_wa</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">present_participle</span><span class="plain-syntax">), </span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">modal_to_s</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">modal_verb</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-vart.html#SP4_1_1" class="named-paragraph-link"><span class="named-paragraph">Check for modality</span><span class="named-paragraph-number">4.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cnj.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Check for modality</span><span class="named-paragraph-number">7.1</span></a></span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vi</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">vc_conjugates</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">vi</span><span class="plain-syntax">)?</span><span class="identifier-syntax">VerbMeanings::first_unspecial_meaning_of_verb_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">Verbs::base_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">vi</span><span class="plain-syntax">)):</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">vi</span><span class="plain-syntax">)?</span><span class="identifier-syntax">VerbMeanings::first_unspecial_meaning_of_verb_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">Verbs::base_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">vi</span><span class="plain-syntax">)):</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">meaning</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VerbMeanings::get_regular_meaning</span><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rel_iname</span><span class="plain-syntax"> = </span><a href="5-rart.html#SP1" class="function-link"><span class="function-syntax">RTRelations::default_iname</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">meaning</span><span class="plain-syntax">) {</span>
|
||||
|
@ -308,7 +275,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-vart.html#SP4_1_2" class="named-paragraph-link"><span class="named-paragraph">Compile conjugation in this sense</span><span class="named-paragraph-number">4.1.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cnj.html#SP7_2" class="named-paragraph-link"><span class="named-paragraph">Compile conjugation in this sense</span><span class="named-paragraph-number">7.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
|
@ -318,14 +285,150 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Functions::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-vart.html#SP4">§4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_2" class="paragraph-anchor"></a><b>§4.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile ConjugateVerbForm routine</span><span class="named-paragraph-number">4.2</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. Invocation as inflected text. </b>Verb conjugations can be invoked in say phrases, as in the text substitution
|
||||
"[growl]" in the example "The [caged animal] [growl] at the zookeeper." This
|
||||
function compiles the necessary code, which is basically a function call to
|
||||
the VC's conjugation function:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::ConjugateVerb_invoke_emit</span><span class="plain-syntax">(</span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">modal</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">negated</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cv_pos</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CV_POS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cv_neg</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CV_NEG_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">modal</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">negated</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="5-cnj.html#SP6" class="function-link"><span class="function-syntax">RTVerbs::conjugation_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">modal</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">cv_neg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PNTOVP_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORY_TENSE_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-cnj.html#SP6" class="function-link"><span class="function-syntax">RTVerbs::conjugation_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="5-cnj.html#SP6" class="function-link"><span class="function-syntax">RTVerbs::conjugation_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">modal</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">cv_pos</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PNTOVP_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORY_TENSE_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-cnj.html#SP6" class="function-link"><span class="function-syntax">RTVerbs::conjugation_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">negated</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="5-cnj.html#SP6" class="function-link"><span class="function-syntax">RTVerbs::conjugation_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">cv_neg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PNTOVP_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORY_TENSE_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="5-cnj.html#SP6" class="function-link"><span class="function-syntax">RTVerbs::conjugation_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">cv_pos</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PNTOVP_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORY_TENSE_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP9" class="function-link"><span class="function-syntax">EmitCode::ref_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">SAY__P_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_number</span></a><span class="plain-syntax">(1);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. Compilation data for verb forms. </b>Now we turn to the "forms" of a verb; each one makes a <span class="extract"><span class="extract-syntax">_verb_form</span></span> package
|
||||
inside its verb's <span class="extract"><span class="extract-syntax">_verb</span></span> package. (Modal verbs do not have forms.)
|
||||
</p>
|
||||
|
||||
<p class="commentary">Each <span class="extract"><span class="extract-syntax">verb_form</span></span> object contains this data:
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">VERB_FORM_COMPILATION_LINGUISTICS_CALLBACK</span><span class="plain-syntax"> </span><a href="5-cnj.html#SP9" class="function-link"><span class="function-syntax">RTVerbs::initialise_verb_form</span></a>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">verb_form_compilation_data</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf_package</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf_iname</span><span class="plain-syntax">; </span><span class="comment-syntax"> routine to conjugate this</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">where_vf_created</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">verb_form_compilation_data</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::initialise_verb_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">VF</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VF</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">vf_package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VF</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">vf_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VF</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">where_vf_created</span><span class="plain-syntax"> = </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure verb_form_compilation_data is private to this section.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. </b>And these too are then filled out on demand. Note that the <span class="extract"><span class="extract-syntax">_verb_form</span></span>
|
||||
packages occur as sub-packages of the relevant <span class="extract"><span class="extract-syntax">_verb</span></span> packages.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">RTVerbs::form_package</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">RTVerbs::form_package</span></span>:<br/><a href="5-cnj.html#SP12">§12</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">vf_package</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><a href="5-cnj.html#SP3" class="function-link"><span class="function-syntax">RTVerbs::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">underlying_verb</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">where_vf_created</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">vf_package</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP21" class="function-link"><span class="function-syntax">Hierarchy::package_within</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_FORMS_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">vf_package</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTVerbs::form_fn_iname</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">RTVerbs::form_fn_iname</span></span>:<br/><a href="5-cnj.html#SP12">§12</a>, <a href="5-cnj.html#SP12_1">§12.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">vf_iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">vf_iname</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">FORM_FN_HL</span><span class="plain-syntax">, </span><a href="5-cnj.html#SP10" class="function-link"><span class="function-syntax">RTVerbs::form_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">verb_form_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">vf_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. Compilation. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::compile_forms</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_form</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-cnj.html#SP12" class="function-link"><span class="function-syntax">RTVerbs::verb_form_is_instance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"form of '%A'"</span><span class="plain-syntax">, &(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">underlying_verb</span><span class="plain-syntax">-></span><span class="identifier-syntax">conjugation</span><span class="plain-syntax">-></span><span class="identifier-syntax">infinitive</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Sequence::queue</span><span class="plain-syntax">(&</span><a href="5-cnj.html#SP12" class="function-link"><span class="function-syntax">RTVerbs::vf_compilation_agent</span></a><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">STORE_POINTER_verb_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. </b>Not every verb form is an instance, that is, gives rise to a value at runtime:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::verb_form_is_instance</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">RTVerbs::verb_form_is_instance</span></span>:<br/><a href="5-cnj.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">underlying_verb</span><span class="plain-syntax">-></span><span class="identifier-syntax">conjugation</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">vc</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">auxiliary_only</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">instance_of_verb</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> ((</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">preposition</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">underlying_verb</span><span class="plain-syntax"> != </span><span class="identifier-syntax">copular_verb</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::vf_compilation_agent</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">RTVerbs::vf_compilation_agent</span></span>:<br/><a href="5-cnj.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_verb_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">data</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="5-cnj.html#SP10" class="function-link"><span class="function-syntax">RTVerbs::form_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP11" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">FORM_VALUE_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="5-cnj.html#SP10" class="function-link"><span class="function-syntax">RTVerbs::form_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">FORM_SORTING_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cnj.html#SP12_1" class="named-paragraph-link"><span class="named-paragraph">Compile ConjugateVerbForm function</span><span class="named-paragraph-number">12.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP12_1" class="paragraph-anchor"></a><b>§12.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile ConjugateVerbForm function</span><span class="named-paragraph-number">12.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">underlying_verb</span><span class="plain-syntax">-></span><span class="identifier-syntax">conjugation</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><a href="5-vart.html#SP2" class="function-link"><span class="function-syntax">RTVerbs::form_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><a href="5-cnj.html#SP10" class="function-link"><span class="function-syntax">RTVerbs::form_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">fn_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_other_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"fn"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vp_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_other_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"vp"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_other_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"t"</span><span class="plain-syntax">);</span>
|
||||
|
@ -339,7 +442,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP9" class="function-link"><span class="function-syntax">EmitCode::ref_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Conjugation::conj_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="5-cnj.html#SP6" class="function-link"><span class="function-syntax">RTVerbs::conjugation_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">fn_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">vp_s</span><span class="plain-syntax">);</span>
|
||||
|
@ -400,8 +503,8 @@ function togglePopup(material_id) {
|
|||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Functions::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-vart.html#SP4">§4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_1_1" class="paragraph-anchor"></a><b>§4.1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Check for modality</span><span class="named-paragraph-number">4.1.1</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-cnj.html#SP12">§12</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7_1" class="paragraph-anchor"></a><b>§7.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Check for modality</span><span class="named-paragraph-number">7.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -409,11 +512,12 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">tense</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">tense</span><span class="plain-syntax"><</span><span class="identifier-syntax">NO_KNOWN_TENSES</span><span class="plain-syntax">; </span><span class="identifier-syntax">tense</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">person</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">person</span><span class="plain-syntax"><</span><span class="identifier-syntax">NO_KNOWN_PERSONS</span><span class="plain-syntax">; </span><span class="identifier-syntax">person</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">number</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">number</span><span class="plain-syntax"><</span><span class="identifier-syntax">NO_KNOWN_NUMBERS</span><span class="plain-syntax">; </span><span class="identifier-syntax">number</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">tabulations</span><span class="plain-syntax">[</span><span class="identifier-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span><span class="identifier-syntax">modal_auxiliary_usage</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">person</span><span class="plain-syntax">][</span><span class="identifier-syntax">number</span><span class="plain-syntax">] != </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">tabulations</span><span class="plain-syntax">[</span><span class="identifier-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">modal_auxiliary_usage</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">person</span><span class="plain-syntax">][</span><span class="identifier-syntax">number</span><span class="plain-syntax">] != </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">modal_verb</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-vart.html#SP4_1">§4.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_1_2" class="paragraph-anchor"></a><b>§4.1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile conjugation in this sense</span><span class="named-paragraph-number">4.1.2</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-cnj.html#SP7">§7</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7_2" class="paragraph-anchor"></a><b>§7.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile conjugation in this sense</span><span class="named-paragraph-number">7.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -423,7 +527,8 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">common</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">common_except_3PS</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">person</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">person</span><span class="plain-syntax"><</span><span class="identifier-syntax">NO_KNOWN_PERSONS</span><span class="plain-syntax">; </span><span class="identifier-syntax">person</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">number</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">number</span><span class="plain-syntax"><</span><span class="identifier-syntax">NO_KNOWN_NUMBERS</span><span class="plain-syntax">; </span><span class="identifier-syntax">number</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wa</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">tabulations</span><span class="plain-syntax">[</span><span class="identifier-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span><span class="identifier-syntax">vc_text</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">person</span><span class="plain-syntax">][</span><span class="identifier-syntax">number</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wa</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">tabulations</span><span class="plain-syntax">[</span><span class="identifier-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc_text</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">person</span><span class="plain-syntax">][</span><span class="identifier-syntax">number</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">WordAssemblages::nonempty</span><span class="plain-syntax">(*</span><span class="identifier-syntax">wa</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">some_exist</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">WordAssemblages::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, </span><span class="identifier-syntax">common</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
|
@ -439,7 +544,8 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">person</span><span class="plain-syntax"> != </span><span class="identifier-syntax">THIRD_PERSON</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">number</span><span class="plain-syntax"> != </span><span class="identifier-syntax">SINGULAR_NUMBER</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">common_except_3PS</span><span class="plain-syntax"> = </span><span class="identifier-syntax">wa</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">tabulations</span><span class="plain-syntax">[</span><span class="identifier-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span><span class="identifier-syntax">modal_auxiliary_usage</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">person</span><span class="plain-syntax">][</span><span class="identifier-syntax">number</span><span class="plain-syntax">] != </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">tabulations</span><span class="plain-syntax">[</span><span class="identifier-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">modal_auxiliary_usage</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">person</span><span class="plain-syntax">][</span><span class="identifier-syntax">number</span><span class="plain-syntax">] != </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">some_are_modal</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">some_dont_exist</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
|
@ -452,19 +558,19 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">some_differ</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">some_are_modal</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">some_except_3PS_differ</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">some_dont_exist</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">some_are_modal</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-vart.html#SP4_1_2_1" class="named-paragraph-link"><span class="named-paragraph">Compile a full switch of all six parts</span><span class="named-paragraph-number">4.1.2.1</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cnj.html#SP7_2_1" class="named-paragraph-link"><span class="named-paragraph">Compile a full switch of all six parts</span><span class="named-paragraph-number">7.2.1</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-vart.html#SP4_1_2_2" class="named-paragraph-link"><span class="named-paragraph">Compile a choice between 3PS and the rest</span><span class="named-paragraph-number">4.1.2.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cnj.html#SP7_2_2" class="named-paragraph-link"><span class="named-paragraph">Compile a choice between 3PS and the rest</span><span class="named-paragraph-number">7.2.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-vart.html#SP4_1_2_3" class="named-paragraph-link"><span class="named-paragraph">Compile for the case where all six parts are the same</span><span class="named-paragraph-number">4.1.2.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-cnj.html#SP7_2_3" class="named-paragraph-link"><span class="named-paragraph">Compile for the case where all six parts are the same</span><span class="named-paragraph-number">7.2.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-vart.html#SP4_1">§4.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_1_2_1" class="paragraph-anchor"></a><b>§4.1.2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile a full switch of all six parts</span><span class="named-paragraph-number">4.1.2.1</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-cnj.html#SP7">§7</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7_2_1" class="paragraph-anchor"></a><b>§7.2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile a full switch of all six parts</span><span class="named-paragraph-number">7.2.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -475,7 +581,8 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">person</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">person</span><span class="plain-syntax"><</span><span class="identifier-syntax">NO_KNOWN_PERSONS</span><span class="plain-syntax">; </span><span class="identifier-syntax">person</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">number</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">number</span><span class="plain-syntax"><</span><span class="identifier-syntax">NO_KNOWN_NUMBERS</span><span class="plain-syntax">; </span><span class="identifier-syntax">number</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wa</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">tabulations</span><span class="plain-syntax">[</span><span class="identifier-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span><span class="identifier-syntax">vc_text</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">person</span><span class="plain-syntax">][</span><span class="identifier-syntax">number</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wa</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">tabulations</span><span class="plain-syntax">[</span><span class="identifier-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc_text</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">person</span><span class="plain-syntax">][</span><span class="identifier-syntax">number</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">WordAssemblages::nonempty</span><span class="plain-syntax">(*</span><span class="identifier-syntax">wa</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CASE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
|
@ -483,8 +590,9 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_number</span></a><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">part</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">mau</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">tabulations</span><span class="plain-syntax">[</span><span class="identifier-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span><span class="identifier-syntax">modal_auxiliary_usage</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">person</span><span class="plain-syntax">][</span><span class="identifier-syntax">number</span><span class="plain-syntax">];</span>
|
||||
<span class="plain-syntax"> </span><a href="5-vart.html#SP5" class="function-link"><span class="function-syntax">RTVerbs::conj_from_wa</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, </span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">modal_to_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">mau</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">mau</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">tabulations</span><span class="plain-syntax">[</span><span class="identifier-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">modal_auxiliary_usage</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">person</span><span class="plain-syntax">][</span><span class="identifier-syntax">number</span><span class="plain-syntax">];</span>
|
||||
<span class="plain-syntax"> </span><a href="5-cnj.html#SP13" class="function-link"><span class="function-syntax">RTVerbs::conj_from_wa</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, </span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">modal_to_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">mau</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -492,8 +600,8 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-vart.html#SP4_1_2">§4.1.2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_1_2_2" class="paragraph-anchor"></a><b>§4.1.2.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile a choice between 3PS and the rest</span><span class="named-paragraph-number">4.1.2.2</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-cnj.html#SP7_2">§7.2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7_2_2" class="paragraph-anchor"></a><b>§7.2.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile a choice between 3PS and the rest</span><span class="named-paragraph-number">7.2.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -506,56 +614,46 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wa</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">tabulations</span><span class="plain-syntax">[</span><span class="identifier-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span><span class="identifier-syntax">vc_text</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">THIRD_PERSON</span><span class="plain-syntax">][</span><span class="identifier-syntax">SINGULAR_NUMBER</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-vart.html#SP5" class="function-link"><span class="function-syntax">RTVerbs::conj_from_wa</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, </span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">modal_to_s</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wa</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">tabulations</span><span class="plain-syntax">[</span><span class="identifier-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc_text</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">THIRD_PERSON</span><span class="plain-syntax">][</span><span class="identifier-syntax">SINGULAR_NUMBER</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-cnj.html#SP13" class="function-link"><span class="function-syntax">RTVerbs::conj_from_wa</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, </span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">modal_to_s</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wa</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">tabulations</span><span class="plain-syntax">[</span><span class="identifier-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span><span class="identifier-syntax">vc_text</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">FIRST_PERSON</span><span class="plain-syntax">][</span><span class="identifier-syntax">SINGULAR_NUMBER</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-vart.html#SP5" class="function-link"><span class="function-syntax">RTVerbs::conj_from_wa</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, </span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">modal_to_s</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wa</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">tabulations</span><span class="plain-syntax">[</span><span class="identifier-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc_text</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">FIRST_PERSON</span><span class="plain-syntax">][</span><span class="identifier-syntax">SINGULAR_NUMBER</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-cnj.html#SP13" class="function-link"><span class="function-syntax">RTVerbs::conj_from_wa</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, </span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">modal_to_s</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-vart.html#SP4_1_2">§4.1.2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_1_2_3" class="paragraph-anchor"></a><b>§4.1.2.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile for the case where all six parts are the same</span><span class="named-paragraph-number">4.1.2.3</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-cnj.html#SP7_2">§7.2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7_2_3" class="paragraph-anchor"></a><b>§7.2.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile for the case where all six parts are the same</span><span class="named-paragraph-number">7.2.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wa</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">tabulations</span><span class="plain-syntax">[</span><span class="identifier-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span><span class="identifier-syntax">vc_text</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">FIRST_PERSON</span><span class="plain-syntax">][</span><span class="identifier-syntax">SINGULAR_NUMBER</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-vart.html#SP5" class="function-link"><span class="function-syntax">RTVerbs::conj_from_wa</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, </span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">modal_to_s</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wa</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">tabulations</span><span class="plain-syntax">[</span><span class="identifier-syntax">ACTIVE_VOICE</span><span class="plain-syntax">].</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc_text</span><span class="plain-syntax">[</span><span class="identifier-syntax">tense</span><span class="plain-syntax">][</span><span class="identifier-syntax">sense</span><span class="plain-syntax">][</span><span class="identifier-syntax">FIRST_PERSON</span><span class="plain-syntax">][</span><span class="identifier-syntax">SINGULAR_NUMBER</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-cnj.html#SP13" class="function-link"><span class="function-syntax">RTVerbs::conj_from_wa</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, </span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">modal_to_s</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-vart.html#SP4_1_2">§4.1.2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b></p>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-cnj.html#SP7_2">§7.2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>§13. Utility functions. </b>Needed by the above:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::conj_from_wa</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RTVerbs::conj_from_wa</span></span>:<br/><a href="5-vart.html#SP4_1">§4.1</a>, <a href="5-vart.html#SP4_1_2_1">§4.1.2.1</a>, <a href="5-vart.html#SP4_1_2_2">§4.1.2.2</a>, <a href="5-vart.html#SP4_1_2_3">§4.1.2.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">modal_to_s</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">mau</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::conj_from_wa</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">RTVerbs::conj_from_wa</span></span>:<br/><a href="5-cnj.html#SP7">§7</a>, <a href="5-cnj.html#SP7_2_1">§7.2.1</a>, <a href="5-cnj.html#SP7_2_2">§7.2.2</a>, <a href="5-cnj.html#SP7_2_3">§7.2.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">modal_to_s</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">mau</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="5-vart.html#SP5" class="function-link"><span class="function-syntax">RTVerbs::takes_contraction_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) && (</span><a href="5-vart.html#SP5" class="function-link"><span class="function-syntax">RTVerbs::takes_contraction_form</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">infinitive</span><span class="plain-syntax">))))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="5-cnj.html#SP14" class="function-link"><span class="function-syntax">RTVerbs::takes_contraction_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="5-cnj.html#SP14" class="function-link"><span class="function-syntax">RTVerbs::takes_contraction_form</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">infinitive</span><span class="plain-syntax">))))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vocabulary_entry</span><span class="plain-syntax"> **</span><span class="identifier-syntax">words</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WordAssemblages::as_array</span><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, &</span><span class="identifier-syntax">words</span><span class="plain-syntax">, &</span><span class="identifier-syntax">n</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">n</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">n</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">>0) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">q</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Vocabulary::get_exemplar</span><span class="plain-syntax">(</span><span class="identifier-syntax">words</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">q</span><span class="plain-syntax">[0]) && (</span><span class="identifier-syntax">q</span><span class="plain-syntax">[</span><span class="identifier-syntax">Wide::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</span><span class="plain-syntax">)-1] == </span><span class="character-syntax">'*'</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">unstarred</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">unstarred</span><span class="plain-syntax">, </span><span class="string-syntax">"%V"</span><span class="plain-syntax">, </span><span class="identifier-syntax">words</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::delete_last_character</span><span class="plain-syntax">(</span><span class="identifier-syntax">unstarred</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">feed_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::begin</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Feeds::feed_C_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">" "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Feeds::feed_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">unstarred</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Feeds::feed_C_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">" "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">unstarred</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">adjective</span><span class="plain-syntax"> *</span><span class="identifier-syntax">aph</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Adjectives::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">defined_in</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\"; %n(prior_named_noun, (prior_named_list >= 2)); print \""</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">aph</span><span class="plain-syntax">-></span><span class="identifier-syntax">adjective_compilation</span><span class="plain-syntax">.</span><span class="element-syntax">adaptive_printing_fn_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%V"</span><span class="plain-syntax">, </span><span class="identifier-syntax">words</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%V"</span><span class="plain-syntax">, </span><span class="identifier-syntax">words</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">)</span>
|
||||
|
@ -579,8 +677,12 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>§14. </b>Used to adjust spacing so that we get <span class="extract"><span class="extract-syntax">I've</span></span>, not <span class="extract"><span class="extract-syntax">I 've</span></span>:
|
||||
</p>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::takes_contraction_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wa</span><span class="plain-syntax">) {</span>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::takes_contraction_form</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">RTVerbs::takes_contraction_form</span></span>:<br/><a href="5-cnj.html#SP13">§13</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wa</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vocabulary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ve</span><span class="plain-syntax"> = </span><span class="identifier-syntax">WordAssemblages::first_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ve</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Vocabulary::get_exemplar</span><span class="plain-syntax">(</span><span class="identifier-syntax">ve</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
|
@ -588,75 +690,8 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. Debug log. </b>The following dumps the entire stock of registered verb and preposition
|
||||
usages to the debugging log.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::log</span><span class="plain-syntax">(</span><span class="identifier-syntax">verb_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vu</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbUsages::write_usage</span><span class="plain-syntax">(</span><span class="identifier-syntax">DL</span><span class="plain-syntax">, </span><span class="identifier-syntax">vu</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::log_all</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vu</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"The current S-grammar has the following verb and preposition usages:\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_usage</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="5-vart.html#SP6" class="function-link"><span class="function-syntax">RTVerbs::log</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="identifier-syntax">preposition</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"$p\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">prep</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. Index tabulation. </b>The following produces the table of verbs in the Phrasebook Index page.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::tabulate</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">index_lexicon_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lex</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">tense</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tensename</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vu</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">f</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_usage</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">vu</span><span class="plain-syntax">-></span><span class="identifier-syntax">vu_lex_entry</span><span class="plain-syntax"> == </span><span class="identifier-syntax">lex</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">VerbUsages::is_used_negatively</span><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> && (</span><span class="identifier-syntax">VerbUsages::get_tense_used</span><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">) == </span><span class="identifier-syntax">tense</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vocabulary_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lastword</span><span class="plain-syntax"> = </span><span class="identifier-syntax">WordAssemblages::last_word</span><span class="plain-syntax">(&(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">-></span><span class="identifier-syntax">vu_text</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">f</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::open_indented_p</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="string-syntax">"tight"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>%s:</i>&nbsp;"</span><span class="plain-syntax">, </span><span class="identifier-syntax">tensename</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"; "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wide::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">Vocabulary::get_exemplar</span><span class="plain-syntax">(</span><span class="identifier-syntax">lastword</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">), </span><span class="identifier-syntax">L</span><span class="string-syntax">"by"</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"B "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"A "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WordAssemblages::index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, &(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">-></span><span class="identifier-syntax">vu_text</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wide::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">Vocabulary::get_exemplar</span><span class="plain-syntax">(</span><span class="identifier-syntax">lastword</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">), </span><span class="identifier-syntax">L</span><span class="string-syntax">"by"</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"A"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"B"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">f</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">f</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVerbs::tabulate_meaning</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">index_lexicon_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lex</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vu</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">, </span><span class="identifier-syntax">verb_usage</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vu</span><span class="plain-syntax">-></span><span class="identifier-syntax">vu_lex_entry</span><span class="plain-syntax"> == </span><span class="identifier-syntax">lex</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vu</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_vu_created</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_vu_created</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VerbMeanings::get_regular_meaning_of_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">Verbs::base_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">VerbUsages::get_verb</span><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bp</span><span class="plain-syntax">) </span><a href="5-rart.html#SP21" class="function-link"><span class="function-syntax">RTRelations::index_for_verbs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">bp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="identifier-syntax">preposition</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prep</span><span class="plain-syntax">-></span><span class="identifier-syntax">prep_lex_entry</span><span class="plain-syntax"> == </span><span class="identifier-syntax">lex</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prep</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_prep_created</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">prep</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_prep_created</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VerbMeanings::get_regular_meaning_of_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">Verbs::find_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">copular_verb</span><span class="plain-syntax">, </span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bp</span><span class="plain-syntax">) </span><a href="5-rart.html#SP21" class="function-link"><span class="function-syntax">RTRelations::index_for_verbs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">bp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-ni.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-es.html">es</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresscurrent">vart</li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-rart.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-chr.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresscurrent">cnj</li><li class="progresssection"><a href="5-eqt.html">eqt</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-eqt.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
165
docs/runtime-module/5-ef.html
Normal file
165
docs/runtime-module/5-ef.html
Normal file
|
@ -0,0 +1,165 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>External Files</title>
|
||||
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
|
||||
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<script>
|
||||
function togglePopup(material_id) {
|
||||
var popup = document.getElementById(material_id);
|
||||
popup.classList.toggle("show");
|
||||
}
|
||||
</script>
|
||||
|
||||
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body class="commentary-font">
|
||||
<nav role="navigation">
|
||||
<h1><a href="../index.html">
|
||||
<img src="../docs-assets/Inform.png" height=72">
|
||||
</a></h1>
|
||||
<ul><li><a href="../compiler.html">compiler tools</a></li>
|
||||
<li><a href="../other.html">other tools</a></li>
|
||||
<li><a href="../extensions.html">extensions and kits</a></li>
|
||||
<li><a href="../units.html">unit test tools</a></li>
|
||||
</ul><h2>Compiler Webs</h2><ul>
|
||||
<li><a href="../inbuild/index.html">inbuild</a></li>
|
||||
<li><a href="../inform7/index.html">inform7</a></li>
|
||||
<li><a href="../inter/index.html">inter</a></li>
|
||||
</ul><h2>Inbuild Modules</h2><ul>
|
||||
<li><a href="../supervisor-module/index.html">supervisor</a></li>
|
||||
</ul><h2>Inform7 Modules</h2><ul>
|
||||
<li><a href="../core-module/index.html">core</a></li>
|
||||
<li><a href="../assertions-module/index.html">assertions</a></li>
|
||||
<li><a href="../values-module/index.html">values</a></li>
|
||||
<li><a href="../knowledge-module/index.html">knowledge</a></li>
|
||||
<li><a href="../imperative-module/index.html">imperative</a></li>
|
||||
<li><a href="index.html"><span class="selectedlink">runtime</span></a></li>
|
||||
<li><a href="../if-module/index.html">if</a></li>
|
||||
<li><a href="../multimedia-module/index.html">multimedia</a></li>
|
||||
<li><a href="../index-module/index.html">index</a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../codegen-module/index.html">codegen</a></li>
|
||||
</ul><h2>Services</h2><ul>
|
||||
<li><a href="../arch-module/index.html">arch</a></li>
|
||||
<li><a href="../calculus-module/index.html">calculus</a></li>
|
||||
<li><a href="../html-module/index.html">html</a></li>
|
||||
<li><a href="../inflections-module/index.html">inflections</a></li>
|
||||
<li><a href="../kinds-module/index.html">kinds</a></li>
|
||||
<li><a href="../linguistics-module/index.html">linguistics</a></li>
|
||||
<li><a href="../problems-module/index.html">problems</a></li>
|
||||
<li><a href="../syntax-module/index.html">syntax</a></li>
|
||||
<li><a href="../words-module/index.html">words</a></li>
|
||||
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'External Files' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>External Files</b></li></ul></div>
|
||||
<p class="purpose">To compile a local _external_file package for each file in a compilation unit.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>Everything is done here:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTExternalFiles::compile</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">files_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">exf</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">exf</span><span class="plain-syntax">, </span><span class="identifier-syntax">files_data</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"external file '%W'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">exf</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Sequence::queue</span><span class="plain-syntax">(&</span><a href="5-ef.html#SP2" class="function-link"><span class="function-syntax">RTExternalFiles::compilation_agent</span></a><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">STORE_POINTER_files_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">exf</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>Via the following agent, which makes a single <span class="extract"><span class="extract-syntax">_external_file</span></span> package:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTExternalFiles::compilation_agent</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTExternalFiles::compilation_agent</span></span>:<br/><a href="5-ef.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">files_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">exf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_files_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">exf</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP19" class="function-link"><span class="function-syntax">Hierarchy::local_package_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">EXTERNAL_FILES_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">exf</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_created</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">exf_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP13" class="function-link"><span class="function-syntax">Hierarchy::make_iname_with_memo</span></a><span class="plain-syntax">(</span><span class="constant-syntax">FILE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IFID_array_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">exf</span><span class="plain-syntax">-></span><span class="identifier-syntax">file_ownership</span><span class="plain-syntax"> == </span><span class="identifier-syntax">OWNED_BY_SPECIFIC_PROJECT</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-ef.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Make an ownership record</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-ef.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Make the file metadata array</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-ef.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Make the value metadata</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2_1" class="paragraph-anchor"></a><b>§2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Make an ownership record</span><span class="named-paragraph-number">2.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IFID_array_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP13" class="function-link"><span class="function-syntax">Hierarchy::make_iname_with_memo</span></a><span class="plain-syntax">(</span><span class="constant-syntax">IFID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP2" class="function-link"><span class="function-syntax">EmitArrays::begin_string</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IFID_array_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">II</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">II</span><span class="plain-syntax">, </span><span class="string-syntax">"//%S</span><span class="comment-syntax">", exf->IFID_of_owner);</span>
|
||||
<span class="string-syntax"> EmitArrays::text_entry(II);</span>
|
||||
<span class="string-syntax"> DISCARD_TEXT(II)</span>
|
||||
<span class="string-syntax"> EmitArrays::end(save);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-ef.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_2" class="paragraph-anchor"></a><b>§2.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Make the file metadata array</span><span class="named-paragraph-number">2.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="2-ea.html#SP2" class="function-link"><span class="function-syntax">EmitArrays::begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">exf_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">AUXF_MAGIC_VALUE_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">AUXF_STATUS_IS_CLOSED_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">exf</span><span class="plain-syntax">-></span><span class="identifier-syntax">file_is_binary</span><span class="plain-syntax">) </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">(1);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">WW</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">WW</span><span class="plain-syntax">, </span><span class="string-syntax">"%w"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Lexer::word_raw_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">exf</span><span class="plain-syntax">-></span><span class="identifier-syntax">unextended_filename</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::delete_first_character</span><span class="plain-syntax">(</span><span class="identifier-syntax">WW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::delete_last_character</span><span class="plain-syntax">(</span><span class="identifier-syntax">WW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::text_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">WW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">WW</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">exf</span><span class="plain-syntax">-></span><span class="identifier-syntax">file_ownership</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">OWNED_BY_THIS_PROJECT:</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="6-bd.html#SP2" class="function-link"><span class="function-syntax">RTBibliographicData::IFID_iname</span></a><span class="plain-syntax">()); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">OWNED_BY_ANOTHER_PROJECT:</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::null_entry</span></a><span class="plain-syntax">(); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">OWNED_BY_SPECIFIC_PROJECT:</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IFID_array_iname</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP6" class="function-link"><span class="function-syntax">EmitArrays::end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-ef.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_3" class="paragraph-anchor"></a><b>§2.3. </b>At runtime, an external file is represented by a pointer to its metadata
|
||||
array.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Make the value metadata</span><span class="named-paragraph-number">2.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">md_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_FILE_VALUE_MD_HL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="5-ins.html#SP4" class="function-link"><span class="function-syntax">RTInstances::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">exf</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP11" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">md_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">exf_iname</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-ef.html#SP2">§2</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-eqt.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-cnj.html">cnj</a></li><li class="progresssection"><a href="5-eqt.html">eqt</a></li><li class="progresscurrent">ef</li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-rls.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -69,7 +69,7 @@ function togglePopup(material_id) {
|
|||
<main role="main">
|
||||
<!--Weave of 'Emit Property Values' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Emit Property Values</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>Emit Property Values</b></li></ul></div>
|
||||
<p class="purpose">To feed the hierarchy of instances and their property values into Inter.</p>
|
||||
|
||||
<ul class="toc"><li><a href="5-epv.html#SP1">§1. Emitting the property values</a></li><li><a href="5-epv.html#SP3">§3. Attribute allocation</a></li><li><a href="5-epv.html#SP4">§4. Rapid run-time testing</a></li><li><a href="5-epv.html#SP5">§5. In-table storage</a></li></ul><hr class="tocbar">
|
||||
|
@ -385,7 +385,7 @@ the property-permission symbol accordingly:
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-msr.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-es.html">es</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresscurrent">epv</li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-vart.html">vart</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-ins.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-msr.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-cnj.html">cnj</a></li><li class="progresssection"><a href="5-eqt.html">eqt</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresscurrent">epv</li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-ins.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Equations Support</title>
|
||||
<title>Equations</title>
|
||||
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
|
@ -59,37 +59,48 @@
|
|||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Equations Support' generated by Inweb-->
|
||||
<!--Weave of 'Equations' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Equations Support</b></li></ul></div>
|
||||
<p class="purpose">To compile unique identifiers for equations.</p>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>Equations</b></li></ul></div>
|
||||
<p class="purpose">To compile a local _equation package for each equation in a compilation unit.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>Each equation has a distinct runtime identifier, which in fact is a stub
|
||||
function returning false; but because these functions are all different,
|
||||
they provide values different from each other and from all other functions.
|
||||
</p>
|
||||
|
||||
<p class="commentary">There is otherwise nothing to see. Equations are solved using inline code,
|
||||
not here; see <a href="../imperative-module/5-cste.html" class="internal">Compile Solutions to Equations (in imperative)</a>.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTEquations::new_identifier</span><span class="plain-syntax">(</span><span class="identifier-syntax">equation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eqn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PR</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP19" class="function-link"><span class="function-syntax">Hierarchy::local_package</span></a><span class="plain-syntax">(</span><span class="constant-syntax">EQUATIONS_HAP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">eqn</span><span class="plain-syntax">-></span><span class="identifier-syntax">eqn_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SOLVE_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">PR</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">equation_compilation_data</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eqn_iname</span><span class="plain-syntax">; </span><span class="comment-syntax"> used at run-time to identify this</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">equation_compilation_data</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">equation_compilation_data</span><span class="plain-syntax"> </span><span class="function-syntax">RTEquations::new_compilation_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">equation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eqn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">equation_compilation_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">ecd</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP19" class="function-link"><span class="function-syntax">Hierarchy::local_package</span></a><span class="plain-syntax">(</span><span class="constant-syntax">EQUATIONS_HAP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ecd</span><span class="plain-syntax">.</span><span class="element-syntax">eqn_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">IDENTIFIER_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">ecd</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTEquations::identifier</span><span class="plain-syntax">(</span><span class="identifier-syntax">equation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eqn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">eqn</span><span class="plain-syntax">-></span><span class="identifier-syntax">eqn_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">eqn</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="identifier-syntax">eqn_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTEquations::compile_identifiers</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTEquations::compile</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">equation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eqn</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">eqn</span><span class="plain-syntax">, </span><span class="identifier-syntax">equation</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">eqn</span><span class="plain-syntax">-></span><span class="identifier-syntax">eqn_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><a href="5-eqt.html#SP1" class="function-link"><span class="function-syntax">RTEquations::identifier</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">eqn</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP11" class="function-link"><span class="function-syntax">EmitCode::rfalse</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Functions::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure equation_compilation_data is private to this section.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-lpart.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresscurrent">es</li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-vart.html">vart</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-tv.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-cnj.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-cnj.html">cnj</a></li><li class="progresscurrent">eqt</li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-ef.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
|
@ -83,7 +83,7 @@ MathJax = {
|
|||
<main role="main">
|
||||
<!--Weave of 'Instance Counting' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Instance Counting</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>Instance Counting</b></li></ul></div>
|
||||
<p class="purpose">A plugin which maintains run-time-accessible linked lists of instances of kinds, in order to speed up loops; and instance counts within kinds, in order to speed up relation storage; and the object-kind hierarchy, in order to speed up run-time checking of the type safety of property usage.</p>
|
||||
|
||||
<ul class="toc"><li><a href="5-ic.html#SP3">§3. Plugin startup</a></li><li><a href="5-ic.html#SP4">§4. Initialising</a></li><li><a href="5-ic.html#SP5">§5. Computing instance counts</a></li><li><a href="5-ic.html#SP7">§7. Instance sequences</a></li><li><a href="5-ic.html#SP9">§9. Inform 6 representation</a></li><li><a href="5-ic.html#SP13">§13. Loop optimisation</a></li></ul><hr class="tocbar">
|
||||
|
@ -502,7 +502,7 @@ constants, and use the Link constants to progress; we stop at <span class="extra
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-ins.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-es.html">es</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresscurrent">ic</li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-vart.html">vart</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-adj.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-ins.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-cnj.html">cnj</a></li><li class="progresssection"><a href="5-eqt.html">eqt</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresscurrent">ic</li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-ni.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -69,7 +69,7 @@ function togglePopup(material_id) {
|
|||
<main role="main">
|
||||
<!--Weave of 'Instances' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Instances</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>Instances</b></li></ul></div>
|
||||
<p class="purpose">To compile run-time support for instances.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b></p>
|
||||
|
@ -178,13 +178,13 @@ declarations) and finally return <span class="extract"><span class="extract-synt
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">RTInstances::package</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">RTInstances::package</span></span>:<br/>Emit Property Values - <a href="5-epv.html#SP2">§2</a><br/>Naming - <a href="6-nmn.html#SP2">§2</a><br/>Backdrops - <a href="6-bck.html#SP1">§1</a><br/>Regions - <a href="6-rgn.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP3">§3</a><br/>Scenes - <a href="6-scn.html#SP2">§2</a>, <a href="6-scn.html#SP6">§6</a><br/>Actions - <a href="7-act.html#SP1">§1</a><br/>Parsing - <a href="8-prs.html#SP2">§2</a><br/>Figures - <a href="9-fgr.html#SP1">§1</a><br/>Sound Effects - <a href="9-se.html#SP1">§1</a><br/>External Files - <a href="9-ef.html#SP1">§1</a><br/>Showme Command - <a href="10-sc.html#SP2_2">§2.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">RTInstances::package</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">RTInstances::package</span></span>:<br/>External Files - <a href="5-ef.html#SP2_3">§2.3</a><br/>Emit Property Values - <a href="5-epv.html#SP2">§2</a><br/>Naming - <a href="6-nmn.html#SP2">§2</a><br/>Backdrops - <a href="6-bck.html#SP1">§1</a><br/>Regions - <a href="6-rgn.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP3">§3</a><br/>Scenes - <a href="6-scn.html#SP2">§2</a>, <a href="6-scn.html#SP6">§6</a><br/>Actions - <a href="7-act.html#SP1">§1</a><br/>Parsing - <a href="8-prs.html#SP2">§2</a><br/>Figures - <a href="9-fgr.html#SP1">§1</a><br/>Sound Effects - <a href="9-se.html#SP1">§1</a><br/>Showme Command - <a href="10-sc.html#SP2_2">§2.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">); </span><span class="comment-syntax"> Thus forcing this to exist...</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">icd</span><span class="plain-syntax">.</span><span class="element-syntax">instance_package</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-epv.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-es.html">es</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresscurrent">ins</li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-vart.html">vart</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-ic.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-epv.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-cnj.html">cnj</a></li><li class="progresssection"><a href="5-eqt.html">eqt</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresscurrent">ins</li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-ic.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -69,7 +69,7 @@ function togglePopup(material_id) {
|
|||
<main role="main">
|
||||
<!--Weave of 'Literal Patterns at Run Time' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Literal Patterns at Run Time</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>Literal Patterns at Run Time</b></li></ul></div>
|
||||
<p class="purpose">Compiled code to print and parse values expressed as literals.</p>
|
||||
|
||||
<ul class="toc"><li><a href="5-lpart.html#SP1">§1. Matching an LP at run-time</a></li><li><a href="5-lpart.html#SP2">§2. Printing the I6 variable |value| out in an LP's notation at run-time</a></li></ul><hr class="tocbar">
|
||||
|
@ -1536,7 +1536,7 @@ the sorting measure.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-rsfk.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresscurrent">lpart</li><li class="progresssection"><a href="5-es.html">es</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-vart.html">vart</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-es.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-rsfk.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-cnj.html">cnj</a></li><li class="progresssection"><a href="5-eqt.html">eqt</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresscurrent">lpart</li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-tv.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
<main role="main">
|
||||
<!--Weave of 'Measurements' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Measurements</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>Measurements</b></li></ul></div>
|
||||
<p class="purpose">To compile run-time support for measurement adjectives.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b></p>
|
||||
|
@ -127,7 +127,7 @@
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure measurement_compilation_data is private to this section.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-prp.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-es.html">es</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresscurrent">msr</li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-vart.html">vart</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-epv.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-prp.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-cnj.html">cnj</a></li><li class="progresssection"><a href="5-eqt.html">eqt</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresscurrent">msr</li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-epv.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -69,7 +69,7 @@ function togglePopup(material_id) {
|
|||
<main role="main">
|
||||
<!--Weave of 'Noun Identifiers' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Noun Identifiers</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>Noun Identifiers</b></li></ul></div>
|
||||
<p class="purpose">Nametags provide for a more contextual parsing of nouns, allowing them to be given in an inexact verbal form.</p>
|
||||
|
||||
<ul class="toc"><li><a href="5-ni.html#SP1">§1. Identifiers</a></li></ul><hr class="tocbar">
|
||||
|
@ -159,7 +159,7 @@ instance, the Standard Rules want the player-character object to be called
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-adj.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-es.html">es</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresscurrent">ni</li><li class="progresssection"><a href="5-vart.html">vart</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-vart.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-ic.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-cnj.html">cnj</a></li><li class="progresssection"><a href="5-eqt.html">eqt</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresscurrent">ni</li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-rart.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -69,7 +69,7 @@ function togglePopup(material_id) {
|
|||
<main role="main">
|
||||
<!--Weave of 'Properties' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Properties</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>Properties</b></li></ul></div>
|
||||
<p class="purpose">To compile run-time support for properties.</p>
|
||||
|
||||
<ul class="toc"><li><a href="5-prp.html#SP5">§5. Translated names of properties</a></li><li><a href="5-prp.html#SP6">§6. Emitting to Inter</a></li><li><a href="5-prp.html#SP7">§7. Compilation</a></li><li><a href="5-prp.html#SP9">§9. Value property compilation</a></li></ul><hr class="tocbar">
|
||||
|
@ -600,7 +600,7 @@ answer now.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-vrb.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-es.html">es</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresscurrent">prp</li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-vart.html">vart</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-msr.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-vrb.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-cnj.html">cnj</a></li><li class="progresssection"><a href="5-eqt.html">eqt</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresscurrent">prp</li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-msr.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -83,7 +83,7 @@ MathJax = {
|
|||
<main role="main">
|
||||
<!--Weave of 'Relations at Run Time' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Relations at Run Time</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>Relations at Run Time</b></li></ul></div>
|
||||
<p class="purpose">Relations need both storage and support code at runtime.</p>
|
||||
|
||||
<ul class="toc"><li><a href="5-rart.html#SP1">§1. Data</a></li><li><a href="5-rart.html#SP2">§2. Relation records</a></li><li><a href="5-rart.html#SP6">§6. The bitmap for various-to-various relations</a></li><li><a href="5-rart.html#SP11">§11. The partition for an equivalence relation</a></li><li><a href="5-rart.html#SP17">§17. Generating routines to test relations by condition</a></li><li><a href="5-rart.html#SP20">§20. Indexing relations</a></li></ul><hr class="tocbar">
|
||||
|
@ -137,17 +137,17 @@ MathJax = {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="identifier-syntax">imp</span><span class="plain-syntax">-></span><span class="element-syntax">handler_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTRelations::iname</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">RTRelations::iname</span></span>:<br/><a href="5-rart.html#SP4">§4</a>, <a href="5-rart.html#SP4_1">§4.1</a>, <a href="5-rart.html#SP4_2_1">§4.2.1</a>, <a href="5-rart.html#SP22">§22</a><br/>Verbs at Run Time - <a href="5-vart.html#SP4_1">§4.1</a>, <a href="5-vart.html#SP4_2">§4.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTRelations::iname</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">RTRelations::iname</span></span>:<br/><a href="5-rart.html#SP4">§4</a>, <a href="5-rart.html#SP4_1">§4.1</a>, <a href="5-rart.html#SP4_2_1">§4.2.1</a>, <a href="5-rart.html#SP22">§22</a><br/>Conjugations - <a href="5-cnj.html#SP7">§7</a>, <a href="5-cnj.html#SP12_1">§12.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bp</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="identifier-syntax">imp</span><span class="plain-syntax">-></span><span class="element-syntax">bp_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">default_rr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTRelations::default_iname</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">RTRelations::default_iname</span></span>:<br/>Verbs at Run Time - <a href="5-vart.html#SP4_1">§4.1</a>, <a href="5-vart.html#SP4_2">§4.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTRelations::default_iname</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">RTRelations::default_iname</span></span>:<br/>Conjugations - <a href="5-cnj.html#SP7">§7</a>, <a href="5-cnj.html#SP12_1">§12.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">default_rr</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTRelations::mark_as_needed</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">RTRelations::mark_as_needed</span></span>:<br/><a href="5-rart.html#SP22">§22</a><br/>Verbs at Run Time - <a href="5-vart.html#SP4_1">§4.1</a>, <a href="5-vart.html#SP4_2">§4.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTRelations::mark_as_needed</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">RTRelations::mark_as_needed</span></span>:<br/><a href="5-rart.html#SP22">§22</a><br/>Conjugations - <a href="5-cnj.html#SP7">§7</a>, <a href="5-cnj.html#SP12_1">§12.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="identifier-syntax">imp</span><span class="plain-syntax">-></span><span class="element-syntax">record_needed</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="identifier-syntax">imp</span><span class="plain-syntax">-></span><span class="element-syntax">bp_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">RELATION_RECORD_HL</span><span class="plain-syntax">, </span><a href="5-rart.html#SP1" class="function-link"><span class="function-syntax">RTRelations::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bp</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">default_rr</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
|
@ -2058,7 +2058,7 @@ matches the specific necessary kind of object if there is one.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTRelations::index_for_verbs</span><button class="popup" onclick="togglePopup('usagePopup23')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup23">Usage of <span class="code-font"><span class="function-syntax">RTRelations::index_for_verbs</span></span>:<br/>Verbs at Run Time - <a href="5-vart.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTRelations::index_for_verbs</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" ... <i>"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bp</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"(a meaning internal to Inform)"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
|
@ -2108,7 +2108,7 @@ matches the specific necessary kind of object if there is one.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-vart.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-es.html">es</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-vart.html">vart</a></li><li class="progresscurrent">rart</li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-rsft.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-ni.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-cnj.html">cnj</a></li><li class="progresssection"><a href="5-eqt.html">eqt</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresscurrent">rart</li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-rsft.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -70,7 +70,7 @@ function togglePopup(material_id) {
|
|||
<main role="main">
|
||||
<!--Weave of 'Rules' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Rules</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>Rules</b></li></ul></div>
|
||||
<p class="purpose">To compile run-time support for rules.</p>
|
||||
|
||||
<ul class="toc"><li><a href="5-rls.html#SP6">§6. Compilation of I6-format rulebook</a></li><li><a href="5-rls.html#SP12">§12. Compiling the firing test</a></li><li><a href="5-rls.html#SP12_2">§12.2. Scene test</a></li><li><a href="5-rls.html#SP12_4">§12.4. Action test</a></li><li><a href="5-rls.html#SP12_7">§12.7. Actor-is-player test</a></li><li><a href="5-rls.html#SP12_9">§12.9. Activity-or-condition test</a></li></ul><hr class="tocbar">
|
||||
|
@ -1195,7 +1195,7 @@ with the default outcome return (see above).
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-act.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresscurrent">rls</li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-es.html">es</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-vart.html">vart</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-rsfk.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-ef.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-cnj.html">cnj</a></li><li class="progresssection"><a href="5-eqt.html">eqt</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresscurrent">rls</li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-rsfk.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -83,7 +83,7 @@ MathJax = {
|
|||
<main role="main">
|
||||
<!--Weave of 'Runtime Support for Kinds' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Runtime Support for Kinds</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>Runtime Support for Kinds</b></li></ul></div>
|
||||
<p class="purpose">To compile I6 material needed at runtime to enable kinds to function as they should.</p>
|
||||
|
||||
<ul class="toc"><li><a href="5-rsfk.html#SP2">§2. Kinds as tables</a></li><li><a href="5-rsfk.html#SP3">§3. Kinds as I6 classes</a></li><li><a href="5-rsfk.html#SP5">§5. Default values</a></li><li><a href="5-rsfk.html#SP7">§7. Equality tests</a></li><li><a href="5-rsfk.html#SP8">§8. Casts at runtime</a></li><li><a href="5-rsfk.html#SP10">§10. IDs</a></li><li><a href="5-rsfk.html#SP19">§19. The heap</a></li><li><a href="5-rsfk.html#SP23">§23. Run-time support for units and enumerations</a></li><li><a href="5-rsfk.html#SP26_6">§26.6. Further runtime support</a></li><li><a href="5-rsfk.html#SP31">§31. Avoiding a hacky Inter-level problem</a></li></ul><hr class="tocbar">
|
||||
|
@ -1986,7 +1986,7 @@ and it seems best to reject the extra complexity needed.
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-rsfk.html#SP31">§31</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-rls.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresscurrent">rsfk</li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-es.html">es</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-vart.html">vart</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-lpart.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-rls.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-cnj.html">cnj</a></li><li class="progresssection"><a href="5-eqt.html">eqt</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresscurrent">rsfk</li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-lpart.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -69,7 +69,7 @@ function togglePopup(material_id) {
|
|||
<main role="main">
|
||||
<!--Weave of 'Runtime Support for Tables' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Runtime Support for Tables</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>Runtime Support for Tables</b></li></ul></div>
|
||||
<p class="purpose">To compile run-time data structures holding tables.</p>
|
||||
|
||||
<ul class="toc"><li><a href="5-rsft.html#SP1">§1. Columns</a></li><li><a href="5-rsft.html#SP3">§3. Tables</a></li></ul><hr class="tocbar">
|
||||
|
@ -504,7 +504,7 @@ should return <span class="extract"><span class="extract-syntax">FALSE</span></s
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-rart.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-es.html">es</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-vart.html">vart</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresscurrent">rsft</li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-chr.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-rart.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-cnj.html">cnj</a></li><li class="progresssection"><a href="5-eqt.html">eqt</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresscurrent">rsft</li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="6-nmn.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -70,7 +70,7 @@ function togglePopup(material_id) {
|
|||
<main role="main">
|
||||
<!--Weave of 'Temporary Variables' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Temporary Variables</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>Temporary Variables</b></li></ul></div>
|
||||
<p class="purpose">When the run-time code needs to borrow a global variable for a while.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b></p>
|
||||
|
@ -169,7 +169,7 @@ hacky constructs which only the SR should ever refer to.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-es.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-es.html">es</a></li><li class="progresscurrent">tv</li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-vart.html">vart</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-vrb.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-lpart.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-cnj.html">cnj</a></li><li class="progresssection"><a href="5-eqt.html">eqt</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresscurrent">tv</li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-vrb.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -69,7 +69,7 @@ function togglePopup(material_id) {
|
|||
<main role="main">
|
||||
<!--Weave of 'Variables' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Variables</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Local Resources</a></li><li><b>Variables</b></li></ul></div>
|
||||
<p class="purpose">To compile run-time support for nonlocal variables.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b></p>
|
||||
|
@ -618,7 +618,7 @@ which makes its kind safe. Hence the error messages.
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-vrb.html#SP8">§8</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-tv.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-es.html">es</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresscurrent">vrb</li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-vart.html">vart</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-prp.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-tv.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresssection"><a href="5-cnj.html">cnj</a></li><li class="progresssection"><a href="5-eqt.html">eqt</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresscurrent">vrb</li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresssection"><a href="5-rsft.html">rsft</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-prp.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
<main role="main">
|
||||
<!--Weave of 'Backdrops' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: World Model</a></li><li><b>Backdrops</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: Completion Resources</a></li><li><b>Backdrops</b></li></ul></div>
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>Just one array will do us:
|
||||
</p>
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ function togglePopup(material_id) {
|
|||
<main role="main">
|
||||
<!--Weave of 'Bibliographic Data' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: World Model</a></li><li><b>Bibliographic Data</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: Completion Resources</a></li><li><b>Bibliographic Data</b></li></ul></div>
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>Bibliographic data is significant at run-time because the kits contain
|
||||
code to print out the "banner" at the start of play, which is a sort of
|
||||
title page. So they need to know the title, and so on.
|
||||
|
@ -198,7 +198,7 @@ around it, in byte-accessible memory.
|
|||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">UUID_array_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTBibliographicData::IFID_iname</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RTBibliographicData::IFID_iname</span></span>:<br/>External Files - <a href="9-ef.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTBibliographicData::IFID_iname</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RTBibliographicData::IFID_iname</span></span>:<br/>External Files - <a href="5-ef.html#SP2_2">§2.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">UUID_ARRAY_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -69,7 +69,7 @@ function togglePopup(material_id) {
|
|||
<main role="main">
|
||||
<!--Weave of 'Naming' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: World Model</a></li><li><b>Naming</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: Completion Resources</a></li><li><b>Naming</b></li></ul></div>
|
||||
<ul class="toc"><li><a href="6-nmn.html#SP2">§2. Short-name functions</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b></p>
|
||||
|
@ -186,7 +186,7 @@ function togglePopup(material_id) {
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure short_name_notice is private to this section.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-chr.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresscurrent">nmn</li><li class="progresssection"><a href="6-bd.html">bd</a></li><li class="progresssection"><a href="6-spt.html">spt</a></li><li class="progresssection"><a href="6-tp.html">tp</a></li><li class="progresssection"><a href="6-bck.html">bck</a></li><li class="progresssection"><a href="6-rgn.html">rgn</a></li><li class="progresssection"><a href="6-tm.html">tm</a></li><li class="progresssection"><a href="6-ts.html">ts</a></li><li class="progresssection"><a href="6-tr.html">tr</a></li><li class="progresssection"><a href="6-scn.html">scn</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="6-bd.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-rsft.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresscurrent">nmn</li><li class="progresssection"><a href="6-bd.html">bd</a></li><li class="progresssection"><a href="6-spt.html">spt</a></li><li class="progresssection"><a href="6-tp.html">tp</a></li><li class="progresssection"><a href="6-bck.html">bck</a></li><li class="progresssection"><a href="6-rgn.html">rgn</a></li><li class="progresssection"><a href="6-tm.html">tm</a></li><li class="progresssection"><a href="6-ts.html">ts</a></li><li class="progresssection"><a href="6-tr.html">tr</a></li><li class="progresssection"><a href="6-scn.html">scn</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="6-bd.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -69,7 +69,7 @@ function togglePopup(material_id) {
|
|||
<main role="main">
|
||||
<!--Weave of 'Regions' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: World Model</a></li><li><b>Regions</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: Completion Resources</a></li><li><b>Regions</b></li></ul></div>
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
|
|
@ -69,7 +69,7 @@ function togglePopup(material_id) {
|
|||
<main role="main">
|
||||
<!--Weave of 'Scenes' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: World Model</a></li><li><b>Scenes</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: Completion Resources</a></li><li><b>Scenes</b></li></ul></div>
|
||||
<p class="purpose">Compiling code to manage scene changes at run-time.</p>
|
||||
|
||||
<ul class="toc"><li><a href="6-scn.html#SP2">§2. Scene-changing machinery at run-time</a></li><li><a href="6-scn.html#SP6">§6. More SCENES output</a></li><li><a href="6-scn.html#SP7">§7. During clauses</a></li></ul><hr class="tocbar">
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
<main role="main">
|
||||
<!--Weave of 'Spatial' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: World Model</a></li><li><b>Spatial</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: Completion Resources</a></li><li><b>Spatial</b></li></ul></div>
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>This goes right back to a curious feature of Inform 1, in 1993. To enable
|
||||
the use of player's holdalls, we must declare a constant <span class="extract"><span class="extract-syntax">RUCKSACK_CLASS</span></span> to
|
||||
tell some code in <span class="extract"><span class="extract-syntax">WorldModelKit</span></span> to use possessions with this Inter class as
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
<main role="main">
|
||||
<!--Weave of 'The Map' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: World Model</a></li><li><b>The Map</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: Completion Resources</a></li><li><b>The Map</b></li></ul></div>
|
||||
<ul class="toc"><li><a href="6-tm.html#SP3">§3. Two-sided doors</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b></p>
|
||||
|
|
|
@ -69,7 +69,7 @@ function togglePopup(material_id) {
|
|||
<main role="main">
|
||||
<!--Weave of 'The Player' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: World Model</a></li><li><b>The Player</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: Completion Resources</a></li><li><b>The Player</b></li></ul></div>
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>A special Inter array holds enough details about the initial situation of
|
||||
the player for <span class="extract"><span class="extract-syntax">WorldModelKit</span></span> to get things started.
|
||||
</p>
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
<main role="main">
|
||||
<!--Weave of 'Timed Rules' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: World Model</a></li><li><b>Timed Rules</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: Completion Resources</a></li><li><b>Timed Rules</b></li></ul></div>
|
||||
<p class="purpose">Code to support rules like "At 12:03AM: ...".</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b></p>
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
<main role="main">
|
||||
<!--Weave of 'The Score' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: World Model</a></li><li><b>The Score</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#6">Chapter 6: Completion Resources</a></li><li><b>The Score</b></li></ul></div>
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
|
|
@ -134,7 +134,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">an</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">an_base_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTActions::double_sharp</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RTActions::double_sharp</span></span>:<br/><a href="7-act.html#SP4">§4</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Rules - <a href="5-rls.html#SP6_1_2">§6.1.2</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP6">§6</a><br/>Chronology - <a href="5-chr.html#SP5">§5</a><br/>Action Patterns - <a href="7-ap.html#SP1">§1</a><br/>Command Grammar Lines - <a href="8-cgl.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">action_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTActions::double_sharp</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RTActions::double_sharp</span></span>:<br/><a href="7-act.html#SP4">§4</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Chronology - <a href="5-chr.html#SP5">§5</a><br/>Rules - <a href="5-rls.html#SP6_1_2">§6.1.2</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP6">§6</a><br/>Action Patterns - <a href="7-ap.html#SP1">§1</a><br/>Command Grammar Lines - <a href="8-cgl.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">action_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">an</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">an_iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">an</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">an_iname</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP15" class="function-link"><span class="function-syntax">Hierarchy::derive_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">DOUBLE_SHARP_NAME_HL</span><span class="plain-syntax">, </span><a href="7-act.html#SP1" class="function-link"><span class="function-syntax">RTActions::base_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">an</span><span class="plain-syntax">), </span><span class="identifier-syntax">an</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">an_package</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -342,7 +342,7 @@ and in this case we therefore ignore <span class="extract"><span class="extract-
|
|||
<span class="plain-syntax"> </span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::holster_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTActionPatterns::emit_pattern_match</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">RTActionPatterns::emit_pattern_match</span></span>:<br/>Rules - <a href="5-rls.html#SP12_4">§12.4</a>, <a href="5-rls.html#SP12_5">§12.5</a><br/>Chronology - <a href="5-chr.html#SP8">§8</a><br/>Named Action Patterns - <a href="7-nap.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">action_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">naming_mode</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTActionPatterns::emit_pattern_match</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">RTActionPatterns::emit_pattern_match</span></span>:<br/>Chronology - <a href="5-chr.html#SP8">§8</a><br/>Rules - <a href="5-rls.html#SP12_4">§12.4</a>, <a href="5-rls.html#SP12_5">§12.5</a><br/>Named Action Patterns - <a href="7-nap.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">action_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">naming_mode</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">value_holster</span><span class="plain-syntax"> </span><span class="identifier-syntax">VH</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Holsters::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">INTER_VAL_VHMODE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-ap.html#SP6" class="function-link"><span class="function-syntax">RTActionPatterns::compile_pattern_match</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="identifier-syntax">naming_mode</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -1,132 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>External Files</title>
|
||||
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
|
||||
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body class="commentary-font">
|
||||
<nav role="navigation">
|
||||
<h1><a href="../index.html">
|
||||
<img src="../docs-assets/Inform.png" height=72">
|
||||
</a></h1>
|
||||
<ul><li><a href="../compiler.html">compiler tools</a></li>
|
||||
<li><a href="../other.html">other tools</a></li>
|
||||
<li><a href="../extensions.html">extensions and kits</a></li>
|
||||
<li><a href="../units.html">unit test tools</a></li>
|
||||
</ul><h2>Compiler Webs</h2><ul>
|
||||
<li><a href="../inbuild/index.html">inbuild</a></li>
|
||||
<li><a href="../inform7/index.html">inform7</a></li>
|
||||
<li><a href="../inter/index.html">inter</a></li>
|
||||
</ul><h2>Inbuild Modules</h2><ul>
|
||||
<li><a href="../supervisor-module/index.html">supervisor</a></li>
|
||||
</ul><h2>Inform7 Modules</h2><ul>
|
||||
<li><a href="../core-module/index.html">core</a></li>
|
||||
<li><a href="../assertions-module/index.html">assertions</a></li>
|
||||
<li><a href="../values-module/index.html">values</a></li>
|
||||
<li><a href="../knowledge-module/index.html">knowledge</a></li>
|
||||
<li><a href="../imperative-module/index.html">imperative</a></li>
|
||||
<li><a href="index.html"><span class="selectedlink">runtime</span></a></li>
|
||||
<li><a href="../if-module/index.html">if</a></li>
|
||||
<li><a href="../multimedia-module/index.html">multimedia</a></li>
|
||||
<li><a href="../index-module/index.html">index</a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../codegen-module/index.html">codegen</a></li>
|
||||
</ul><h2>Services</h2><ul>
|
||||
<li><a href="../arch-module/index.html">arch</a></li>
|
||||
<li><a href="../calculus-module/index.html">calculus</a></li>
|
||||
<li><a href="../html-module/index.html">html</a></li>
|
||||
<li><a href="../inflections-module/index.html">inflections</a></li>
|
||||
<li><a href="../kinds-module/index.html">kinds</a></li>
|
||||
<li><a href="../linguistics-module/index.html">linguistics</a></li>
|
||||
<li><a href="../problems-module/index.html">problems</a></li>
|
||||
<li><a href="../syntax-module/index.html">syntax</a></li>
|
||||
<li><a href="../words-module/index.html">words</a></li>
|
||||
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'External Files' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#9">Chapter 9: Multimedia</a></li><li><b>External Files</b></li></ul></div>
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>External files are written in Inter as their array names:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">external_file_compilation_data</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">exf_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IFID_array_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">external_file_compilation_data</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">external_file_compilation_data</span><span class="plain-syntax"> </span><span class="function-syntax">RTExternalFiles::new_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">external_file_compilation_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">efcd</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP19" class="function-link"><span class="function-syntax">Hierarchy::local_package</span></a><span class="plain-syntax">(</span><span class="constant-syntax">EXTERNAL_FILES_HAP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">efcd</span><span class="plain-syntax">.</span><span class="element-syntax">exf_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP13" class="function-link"><span class="function-syntax">Hierarchy::make_iname_with_memo</span></a><span class="plain-syntax">(</span><span class="constant-syntax">FILE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">efcd</span><span class="plain-syntax">.</span><span class="element-syntax">IFID_array_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP13" class="function-link"><span class="function-syntax">Hierarchy::make_iname_with_memo</span></a><span class="plain-syntax">(</span><span class="constant-syntax">IFID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">efcd</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTExternalFiles::arrays</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">files_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">exf</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">exf</span><span class="plain-syntax">, </span><span class="identifier-syntax">files_data</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">exf</span><span class="plain-syntax">-></span><span class="identifier-syntax">file_ownership</span><span class="plain-syntax"> == </span><span class="identifier-syntax">OWNED_BY_SPECIFIC_PROJECT</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP2" class="function-link"><span class="function-syntax">EmitArrays::begin_string</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">exf</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">IFID_array_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">II</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">II</span><span class="plain-syntax">, </span><span class="string-syntax">"//%S</span><span class="comment-syntax">", exf->IFID_of_owner);</span>
|
||||
<span class="string-syntax"> EmitArrays::text_entry(II);</span>
|
||||
<span class="string-syntax"> DISCARD_TEXT(II)</span>
|
||||
<span class="string-syntax"> EmitArrays::end(save);</span>
|
||||
<span class="string-syntax"> }</span>
|
||||
<span class="string-syntax"> }</span>
|
||||
|
||||
<span class="string-syntax"> LOOP_OVER(exf, files_data) {</span>
|
||||
<span class="string-syntax"> packaging_state save = EmitArrays::begin(exf->compilation_data.exf_iname, K_value);</span>
|
||||
<span class="string-syntax"> EmitArrays::iname_entry(Hierarchy::find(AUXF_MAGIC_VALUE_HL));</span>
|
||||
<span class="string-syntax"> EmitArrays::iname_entry(Hierarchy::find(AUXF_STATUS_IS_CLOSED_HL));</span>
|
||||
<span class="string-syntax"> if (exf->file_is_binary) EmitArrays::numeric_entry(1);</span>
|
||||
<span class="string-syntax"> else EmitArrays::numeric_entry(0);</span>
|
||||
<span class="string-syntax"> EmitArrays::numeric_entry(0);</span>
|
||||
<span class="string-syntax"> TEMPORARY_TEXT(WW)</span>
|
||||
<span class="string-syntax"> WRITE_TO(WW, "</span><span class="plain-syntax">%</span><span class="identifier-syntax">w</span><span class="string-syntax">", Lexer::word_raw_text(exf->unextended_filename));</span>
|
||||
<span class="string-syntax"> Str::delete_first_character(WW);</span>
|
||||
<span class="string-syntax"> Str::delete_last_character(WW);</span>
|
||||
<span class="string-syntax"> EmitArrays::text_entry(WW);</span>
|
||||
<span class="string-syntax"> DISCARD_TEXT(WW)</span>
|
||||
<span class="string-syntax"> switch (exf->file_ownership) {</span>
|
||||
<span class="string-syntax"> case OWNED_BY_THIS_PROJECT: EmitArrays::iname_entry(RTBibliographicData::IFID_iname()); break;</span>
|
||||
<span class="string-syntax"> case OWNED_BY_ANOTHER_PROJECT: EmitArrays::null_entry(); break;</span>
|
||||
<span class="string-syntax"> case OWNED_BY_SPECIFIC_PROJECT: EmitArrays::iname_entry(exf->compilation_data.IFID_array_iname); break;</span>
|
||||
<span class="string-syntax"> }</span>
|
||||
<span class="string-syntax"> EmitArrays::end(save);</span>
|
||||
<span class="string-syntax"> }</span>
|
||||
|
||||
<span class="string-syntax"> LOOP_OVER(exf, files_data) {</span>
|
||||
<span class="string-syntax"> inter_name *md_iname = Hierarchy::make_iname_in(INSTANCE_FILE_VALUE_MD_HL,</span>
|
||||
<span class="string-syntax"> RTInstances::package(exf->as_instance));</span>
|
||||
<span class="string-syntax"> Emit::iname_constant(md_iname, K_value, exf->compilation_data.exf_iname);</span>
|
||||
<span class="string-syntax"> }</span>
|
||||
<span class="string-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure external_file_compilation_data is private to this section.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="9-se.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresscurrentchapter">9</li><li class="progresssection"><a href="9-fgr.html">fgr</a></li><li class="progresssection"><a href="9-se.html">se</a></li><li class="progresscurrent">ef</li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="10-sc.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -76,7 +76,7 @@
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="8-los.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresscurrentchapter">9</li><li class="progresscurrent">fgr</li><li class="progresssection"><a href="9-se.html">se</a></li><li class="progresssection"><a href="9-ef.html">ef</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="9-se.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="8-los.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresscurrentchapter">9</li><li class="progresscurrent">fgr</li><li class="progresssection"><a href="9-se.html">se</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="9-se.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -76,7 +76,7 @@
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="9-fgr.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresscurrentchapter">9</li><li class="progresssection"><a href="9-fgr.html">fgr</a></li><li class="progresscurrent">se</li><li class="progresssection"><a href="9-ef.html">ef</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="9-ef.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="9-fgr.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresscurrentchapter">9</li><li class="progresssection"><a href="9-fgr.html">fgr</a></li><li class="progresscurrent">se</li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="10-sc.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -195,13 +195,38 @@
|
|||
</li>
|
||||
<li>
|
||||
<p class="chapterentry"><a name="5"></a>
|
||||
<span class="chaptertitle">Chapter 5: Miscellany</span></p>
|
||||
<span class="chaptertitle">Chapter 5: Local Resources</span></p>
|
||||
<ul class="sectionlist">
|
||||
<li>
|
||||
<p class="sectionentry"><a href="5-act.html">
|
||||
<spon class="sectiontitle">Activities</span></a> -
|
||||
<span class="sectionpurpose">To compile a local _activity package for each activity in a compilation unit.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="5-adj.html">
|
||||
<spon class="sectiontitle">Adjectives</span></a> -
|
||||
<span class="sectionpurpose">To compile a local _adjective package for each adjective in a compilation unit, and a local |_adjective_phrase| package for each one given a "Definition:".</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="5-chr.html">
|
||||
<spon class="sectiontitle">Chronology</span></a> -
|
||||
<span class="sectionpurpose">To compile a local _past_condition package for each condition referring to things happening in the past, and similar _action_history_condition packages for conditions referring to actions having occurred before.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="5-cnj.html">
|
||||
<spon class="sectiontitle">Conjugations</span></a> -
|
||||
<span class="sectionpurpose">To compile local _verb, _modal_verb and _verb_form packages for each verb created in a compilation unit, which together make up its conjuugations package.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="5-eqt.html">
|
||||
<spon class="sectiontitle">Equations</span></a> -
|
||||
<span class="sectionpurpose">To compile a local _equation package for each equation in a compilation unit.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="5-ef.html">
|
||||
<spon class="sectiontitle">External Files</span></a> -
|
||||
<span class="sectionpurpose">To compile a local _external_file package for each file in a compilation unit.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="5-rls.html">
|
||||
<spon class="sectiontitle">Rules</span></a> -
|
||||
|
@ -217,11 +242,6 @@
|
|||
<spon class="sectiontitle">Literal Patterns at Run Time</span></a> -
|
||||
<span class="sectionpurpose">Compiled code to print and parse values expressed as literals.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="5-es.html">
|
||||
<spon class="sectiontitle">Equations Support</span></a> -
|
||||
<span class="sectionpurpose">To compile unique identifiers for equations.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="5-tv.html">
|
||||
<spon class="sectiontitle">Temporary Variables</span></a> -
|
||||
|
@ -257,21 +277,11 @@
|
|||
<spon class="sectiontitle">Instance Counting</span></a> -
|
||||
<span class="sectionpurpose">A plugin which maintains run-time-accessible linked lists of instances of kinds, in order to speed up loops; and instance counts within kinds, in order to speed up relation storage; and the object-kind hierarchy, in order to speed up run-time checking of the type safety of property usage.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="5-adj.html">
|
||||
<spon class="sectiontitle">Adjectives</span></a> -
|
||||
<span class="sectionpurpose">To compile a local _adjective package for each adjective in a compilation unit, and a local |_adjective_phrase| package for each one given a "Definition:".</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="5-ni.html">
|
||||
<spon class="sectiontitle">Noun Identifiers</span></a> -
|
||||
<span class="sectionpurpose">Nametags provide for a more contextual parsing of nouns, allowing them to be given in an inexact verbal form.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="5-vart.html">
|
||||
<spon class="sectiontitle">Verbs at Run Time</span></a> -
|
||||
<span class="sectionpurpose">To provide run-time access to verbs and their conjugations.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="5-rart.html">
|
||||
<spon class="sectiontitle">Relations at Run Time</span></a> -
|
||||
|
@ -282,16 +292,11 @@
|
|||
<spon class="sectiontitle">Runtime Support for Tables</span></a> -
|
||||
<span class="sectionpurpose">To compile run-time data structures holding tables.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="5-chr.html">
|
||||
<spon class="sectiontitle">Chronology</span></a> -
|
||||
<span class="sectionpurpose">To compile a local _past_condition package for each condition referring to things happening in the past, and similar _action_history_condition packages for conditions referring to actions having occurred before.</span></p>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<p class="chapterentry"><a name="6"></a>
|
||||
<span class="chaptertitle">Chapter 6: World Model</span></p>
|
||||
<span class="chaptertitle">Chapter 6: Completion Resources</span></p>
|
||||
<ul class="sectionlist">
|
||||
<li>
|
||||
<p class="sectionentry"><a href="6-nmn.html">
|
||||
|
@ -426,11 +431,6 @@
|
|||
<spon class="sectiontitle">Sound Effects</span></a> -
|
||||
<span class="sectionpurpose"></span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="9-ef.html">
|
||||
<spon class="sectiontitle">External Files</span></a> -
|
||||
<span class="sectionpurpose"></span></p>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
|
|
|
@ -175,7 +175,7 @@ they can be rather lengthy.
|
|||
Main::write_diagnostics(
|
||||
I"documentation-diagnostics.txt", &Index::DocReferences::log_statistics);
|
||||
Main::write_diagnostics(
|
||||
I"verbs-diagnostics.txt", &RTVerbs::log_all);
|
||||
I"verbs-diagnostics.txt", &VerbUsages::log_all);
|
||||
Main::write_diagnostics(
|
||||
I"excerpts-diagnostics.txt", &FromLexicon::statistics);
|
||||
Main::write_diagnostics(
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
Total memory consumption was 303589K = 296 MB
|
||||
Total memory consumption was 302971K = 296 MB
|
||||
|
||||
64.0% was used for 1499839 objects, in 319161 frames in 243 x 800K = 194400K = 189 MB:
|
||||
63.9% was used for 1500328 objects, in 319452 frames in 242 x 800K = 193600K = 189 MB:
|
||||
|
||||
9.5% inter_tree_node_array 41 x 8192 = 335872 objects, 29558048 bytes
|
||||
6.1% text_stream_array 3375 x 100 = 337500 objects, 19008000 bytes
|
||||
5.4% linked_list 29980 objects, 16788800 bytes
|
||||
6.1% text_stream_array 3377 x 100 = 337700 objects, 19019264 bytes
|
||||
5.4% linked_list 29982 objects, 16789920 bytes
|
||||
3.3% parse_node 129367 objects, 10349360 bytes
|
||||
2.7% inter_symbol_array 88 x 1024 = 90112 objects, 8653568 bytes
|
||||
2.3% verb_conjugation 160 objects, 7425280 bytes
|
||||
|
@ -40,10 +40,10 @@ Total memory consumption was 303589K = 296 MB
|
|||
---- noun 2379 objects, 285480 bytes
|
||||
---- inference_subject 665 objects, 260680 bytes
|
||||
---- inter_annotation_array 1 x 8192 objects, 196640 bytes
|
||||
---- compilation_subtask 2102 objects, 168160 bytes
|
||||
---- linguistic_stock_item 3315 objects, 159120 bytes
|
||||
---- binary_predicate 321 objects, 156648 bytes
|
||||
---- rule_family_data 400 objects, 147200 bytes
|
||||
---- compilation_subtask 1836 objects, 146880 bytes
|
||||
---- index_lexicon_entry 395 objects, 142200 bytes
|
||||
---- nonterminal 759 objects, 139656 bytes
|
||||
---- hierarchy_location 845 objects, 128440 bytes
|
||||
|
@ -103,14 +103,14 @@ Total memory consumption was 303589K = 296 MB
|
|||
---- method 335 objects, 16080 bytes
|
||||
---- understanding_reference_array 2 x 100 = 200 objects, 16064 bytes
|
||||
---- match_avinue_array 1 x 1000 objects, 16032 bytes
|
||||
---- action_name_list_array 1 x 1000 objects, 16032 bytes
|
||||
---- linked_list_item_array 1 x 1000 objects, 16032 bytes
|
||||
---- action_name_list_array 1 x 1000 objects, 16032 bytes
|
||||
---- to_phrase_request 59 objects, 15576 bytes
|
||||
---- adjective 137 objects, 14248 bytes
|
||||
---- booking_list 407 objects, 13024 bytes
|
||||
---- adjective_iname_holder 320 objects, 12800 bytes
|
||||
---- pathname 292 objects, 11680 bytes
|
||||
---- stopwatch_timer 128 objects, 10240 bytes
|
||||
---- stopwatch_timer 129 objects, 10320 bytes
|
||||
---- filename 208 objects, 8320 bytes
|
||||
---- uniqueness_count 325 objects, 7800 bytes
|
||||
---- equation_node 68 objects, 7616 bytes
|
||||
|
@ -134,14 +134,14 @@ Total memory consumption was 303589K = 296 MB
|
|||
---- command_line_switch 43 objects, 3440 bytes
|
||||
---- property_setting_bp_data 84 objects, 3360 bytes
|
||||
---- method_set 102 objects, 3264 bytes
|
||||
---- instance_usage_array 1 x 200 objects, 3232 bytes
|
||||
---- kind_constructor_comparison_schema_array 1 x 100 objects, 3232 bytes
|
||||
---- instance_usage_array 1 x 200 objects, 3232 bytes
|
||||
---- compatibility_specification 66 objects, 3168 bytes
|
||||
---- definition 44 objects, 3168 bytes
|
||||
---- submodule_request 79 objects, 3160 bytes
|
||||
---- inform_extension 19 objects, 3040 bytes
|
||||
---- either_or_property_data 62 objects, 2976 bytes
|
||||
---- property_of_value_storage 93 objects, 2976 bytes
|
||||
---- either_or_property_data 62 objects, 2976 bytes
|
||||
---- use_option 29 objects, 2552 bytes
|
||||
---- part_of_inference_data 79 objects, 2528 bytes
|
||||
---- parentage_inference_data 79 objects, 2528 bytes
|
||||
|
@ -166,82 +166,84 @@ Total memory consumption was 303589K = 296 MB
|
|||
---- invocation_options_array 1 x 100 objects, 1224 bytes
|
||||
---- direction_inference_data 30 objects, 1200 bytes
|
||||
---- quantifier 16 objects, 1024 bytes
|
||||
---- inter_tree_location_list 24 objects, 960 bytes
|
||||
---- runtime_kind_structure 13 objects, 936 bytes
|
||||
---- inter_tree_location_list 23 objects, 920 bytes
|
||||
---- pipeline_stage 19 objects, 912 bytes
|
||||
---- inbuild_requirement 22 objects, 880 bytes
|
||||
---- control_structure_phrase 12 objects, 864 bytes
|
||||
---- code_generation 1 object, 864 bytes
|
||||
---- control_structure_phrase 12 objects, 864 bytes
|
||||
---- cached_understanding 21 objects, 840 bytes
|
||||
---- submodule_identity 26 objects, 832 bytes
|
||||
---- phrase_option_array 1 x 100 objects, 824 bytes
|
||||
---- target_vm 6 objects, 816 bytes
|
||||
---- generated_segment 25 objects, 800 bytes
|
||||
---- inter_data_type 14 objects, 784 bytes
|
||||
---- tree_inventory_item 18 objects, 720 bytes
|
||||
---- inform_language 6 objects, 672 bytes
|
||||
---- inter_warehouse_room 10 objects, 640 bytes
|
||||
---- relation_guard 5 objects, 640 bytes
|
||||
---- I6T_intervention 8 objects, 640 bytes
|
||||
---- relation_guard 5 objects, 640 bytes
|
||||
---- inbuild_search_result 15 objects, 600 bytes
|
||||
---- named_rulebook_outcome 15 objects, 600 bytes
|
||||
---- rulebook_outcome 17 objects, 544 bytes
|
||||
---- small_word_set 11 objects, 528 bytes
|
||||
---- inform_kit 5 objects, 520 bytes
|
||||
---- implication 13 objects, 520 bytes
|
||||
---- inform_kit 5 objects, 520 bytes
|
||||
---- inference_family 11 objects, 440 bytes
|
||||
---- i6_memory_setting 13 objects, 416 bytes
|
||||
---- equation 4 objects, 416 bytes
|
||||
---- dval_written 10 objects, 400 bytes
|
||||
---- i6_memory_setting 13 objects, 416 bytes
|
||||
---- module_package 10 objects, 400 bytes
|
||||
---- article_usage 8 objects, 384 bytes
|
||||
---- dval_written 10 objects, 400 bytes
|
||||
---- bp_family 12 objects, 384 bytes
|
||||
---- article_usage 8 objects, 384 bytes
|
||||
---- source_file 5 objects, 360 bytes
|
||||
---- inbuild_genre 7 objects, 336 bytes
|
||||
---- door_dir_notice 5 objects, 320 bytes
|
||||
---- grammatical_category 8 objects, 320 bytes
|
||||
---- pronoun 8 objects, 320 bytes
|
||||
---- build_step 4 objects, 288 bytes
|
||||
---- grammatical_category 8 objects, 320 bytes
|
||||
---- door_dir_notice 5 objects, 320 bytes
|
||||
---- up_family 9 objects, 288 bytes
|
||||
---- door_to_notice 5 objects, 280 bytes
|
||||
---- build_step 4 objects, 288 bytes
|
||||
---- explicit_bp_data 5 objects, 280 bytes
|
||||
---- door_to_notice 5 objects, 280 bytes
|
||||
---- inform_pipeline 4 objects, 256 bytes
|
||||
---- verb_usage_tier 5 objects, 240 bytes
|
||||
---- tree_inventory 1 object, 232 bytes
|
||||
---- adjective_meaning_family 7 objects, 224 bytes
|
||||
---- release_instructions 1 object, 208 bytes
|
||||
---- test_scenario 1 object, 208 bytes
|
||||
---- compilation_unit 5 objects, 200 bytes
|
||||
---- release_instructions 1 object, 208 bytes
|
||||
---- build_skill 5 objects, 200 bytes
|
||||
---- plural_dictionary_entry 4 objects, 192 bytes
|
||||
---- compilation_unit 5 objects, 200 bytes
|
||||
---- kit_dependency 4 objects, 192 bytes
|
||||
---- plural_dictionary_entry 4 objects, 192 bytes
|
||||
---- inform_project 1 object, 176 bytes
|
||||
---- code_generation_target 4 objects, 160 bytes
|
||||
---- imperative_defn_family 4 objects, 160 bytes
|
||||
---- inference_subject_family 5 objects, 160 bytes
|
||||
---- link_instruction 4 objects, 160 bytes
|
||||
---- inter_architecture 4 objects, 160 bytes
|
||||
---- element_activation 4 objects, 128 bytes
|
||||
---- code_generation_target 4 objects, 160 bytes
|
||||
---- link_instruction 4 objects, 160 bytes
|
||||
---- codegen_pipeline 1 object, 128 bytes
|
||||
---- element_activation 4 objects, 128 bytes
|
||||
---- inbuild_nest 3 objects, 120 bytes
|
||||
---- local_block_value 2 objects, 112 bytes
|
||||
---- inform_kit_ittt 2 objects, 96 bytes
|
||||
---- compile_task_data 1 object, 80 bytes
|
||||
---- article 2 objects, 80 bytes
|
||||
---- group_together_function 2 objects, 80 bytes
|
||||
---- figures_data 1 object, 56 bytes
|
||||
---- compile_task_data 1 object, 80 bytes
|
||||
---- inter_warehouse 1 object, 56 bytes
|
||||
---- figures_data 1 object, 56 bytes
|
||||
---- build_methodology 1 object, 56 bytes
|
||||
---- star_invention 1 object, 48 bytes
|
||||
---- HTML_file_state 1 object, 48 bytes
|
||||
---- kind_template_definition 1 object, 40 bytes
|
||||
---- by_routine_bp_data 1 object, 40 bytes
|
||||
---- loop_over_scope 1 object, 40 bytes
|
||||
---- parse_name_notice 1 object, 40 bytes
|
||||
---- by_routine_bp_data 1 object, 40 bytes
|
||||
---- kind_template_definition 1 object, 40 bytes
|
||||
|
||||
35.9% was used for memory not allocated for objects:
|
||||
36.0% was used for memory not allocated for objects:
|
||||
|
||||
16.7% text stream storage 52135968 bytes in 348492 claims
|
||||
16.8% text stream storage 52318268 bytes in 349025 claims
|
||||
3.6% dictionary storage 11245056 bytes in 20157 claims
|
||||
---- sorting 872 bytes in 3 claims
|
||||
---- sorting 880 bytes in 3 claims
|
||||
2.3% source text 7200000 bytes in 3 claims
|
||||
3.4% source text details 10800000 bytes in 2 claims
|
||||
---- linguistic stock array 81920 bytes in 2 claims
|
||||
|
@ -249,12 +251,12 @@ Total memory consumption was 303589K = 296 MB
|
|||
0.8% inter symbols storage 2648128 bytes in 16173 claims
|
||||
5.4% inter bytecode storage 16802796 bytes in 14 claims
|
||||
2.8% inter links storage 8750208 bytes in 246 claims
|
||||
---- inter tree location list storage 142592 bytes in 23 claims
|
||||
---- inter tree location list storage 146432 bytes in 24 claims
|
||||
0.5% instance-of-kind counting 1695204 bytes in 1 claim
|
||||
---- compilation workspace for objects 21856 bytes in 25 claims
|
||||
---- lists for type-checking invocations 16000 bytes in 1 claim
|
||||
---- code generation workspace for objects 9192 bytes in 9 claims
|
||||
---- emitter array storage 154368 bytes in 2036 claims
|
||||
|
||||
20.5% was overhead - 64036256 bytes = 62535K = 61 MB
|
||||
20.3% was overhead - 63182320 bytes = 61701K = 60 MB
|
||||
|
||||
|
|
|
@ -1,40 +1,36 @@
|
|||
100.0% in inform7 run
|
||||
53.2% in compilation to Inter
|
||||
33.2% in //Sequence::undertake_queued_tasks//
|
||||
5.3% in //InferenceSubjects::emit_all//
|
||||
3.2% in //MajorNodes::pre_pass//
|
||||
2.9% in //MajorNodes::pass_1//
|
||||
55.9% in compilation to Inter
|
||||
35.7% in //Sequence::undertake_queued_tasks//
|
||||
5.5% in //InferenceSubjects::emit_all//
|
||||
3.4% in //MajorNodes::pre_pass//
|
||||
3.1% in //MajorNodes::pass_1//
|
||||
1.4% in //ImperativeDefinitions::assess_all//
|
||||
0.8% in //RTVerbs::ConjugateVerb//
|
||||
0.5% in //RTRules::compile_rulebooks//
|
||||
0.6% in //RTRules::compile_rulebooks//
|
||||
0.4% in //ImperativeDefinitions::compile_first_block//
|
||||
0.4% in //MajorNodes::pass_2//
|
||||
0.4% in //World::stage_V//
|
||||
0.2% in //MajorNodes::pass_2//
|
||||
0.2% in //RTRelations::compile_defined_relations//
|
||||
0.3% in //RTRelations::compile_defined_relations//
|
||||
0.1% in //RTActions::compile_functions//
|
||||
0.1% in //RTActions::compile_metadata//
|
||||
0.1% in //RTCommandGrammars::compile_all//
|
||||
0.1% in //RTKinds::compile_metadata//
|
||||
0.1% in //RTKinds::compile_mkdef_functions//
|
||||
0.1% in //RTRules::compile_metadata//
|
||||
0.1% in //RTShowmeCommand::compile_SHOWME_details//
|
||||
0.1% in //Task::make_built_in_kind_constructors//
|
||||
0.1% in //World::stages_II_and_III//
|
||||
2.6% not specifically accounted for
|
||||
44.7% in running Inter pipeline
|
||||
15.4% in inter step 7/14: consolidate-text
|
||||
9.3% in step preparation
|
||||
8.3% in inter step 2/14: link
|
||||
7.0% in inter step 14/14: generate inform6 -> auto.inf
|
||||
0.7% in inter step 10/14: make-identifiers-unique
|
||||
0.2% in inter step 11/14: reconcile-verbs
|
||||
0.2% in inter step 13/14: eliminate-redundant-operations
|
||||
0.2% in inter step 8/14: resolve-external-symbols
|
||||
3.2% not specifically accounted for
|
||||
41.9% in running Inter pipeline
|
||||
10.3% in inter step 7/14: consolidate-text
|
||||
10.3% in step preparation
|
||||
9.1% in inter step 2/14: link
|
||||
7.3% in inter step 14/14: generate inform6 -> auto.inf
|
||||
0.8% in inter step 10/14: make-identifiers-unique
|
||||
0.3% in inter step 11/14: reconcile-verbs
|
||||
0.3% in inter step 13/14: eliminate-redundant-operations
|
||||
0.1% in inter step 12/14: eliminate-redundant-labels
|
||||
0.1% in inter step 4/14: parse-linked-matter
|
||||
0.1% in inter step 5/14: resolve-conditional-compilation
|
||||
0.1% in inter step 6/14: assimilate
|
||||
0.1% in inter step 8/14: resolve-external-symbols
|
||||
0.1% in inter step 9/14: inspect-plugs
|
||||
2.1% not specifically accounted for
|
||||
1.6% in supervisor
|
||||
0.5% not specifically accounted for
|
||||
2.3% not specifically accounted for
|
||||
1.8% in supervisor
|
||||
0.4% not specifically accounted for
|
||||
|
|
|
@ -17,8 +17,9 @@ typedef struct equation {
|
|||
|
||||
int examined_already;
|
||||
struct equation_node *parsed_equation; /* and the equation itself (when eventually parsed) */
|
||||
struct inter_name *eqn_iname; /* used at run-time to identify this */
|
||||
struct equation_symbol *symbol_list; /* the symbols used */
|
||||
|
||||
struct equation_compilation_data compilation_data;
|
||||
CLASS_DEFINITION
|
||||
} equation;
|
||||
|
||||
|
@ -149,8 +150,6 @@ equation *Equations::new(wording W, int anonymous) {
|
|||
eqn->symbol_list = NULL;
|
||||
eqn->examined_already = FALSE;
|
||||
|
||||
RTEquations::new_identifier(eqn);
|
||||
|
||||
wording NO = EMPTY_WORDING, NA = EMPTY_WORDING;
|
||||
if (anonymous == FALSE) {
|
||||
@<Parse the equation's number and/or name@>;
|
||||
|
@ -165,6 +164,8 @@ equation *Equations::new(wording W, int anonymous) {
|
|||
|
||||
if (<text-ending-in-comma>(W)) W = GET_RW(<text-ending-in-comma>, 1);
|
||||
eqn->equation_text = W;
|
||||
|
||||
eqn->compilation_data = RTEquations::new_compilation_data(eqn);
|
||||
return eqn;
|
||||
}
|
||||
|
||||
|
|
|
@ -199,7 +199,7 @@ so on. Those absolute basics are made here.
|
|||
BENCH(RTTables::compile_table_metadata)
|
||||
BENCH(RTTables::compile_table_column_metadata)
|
||||
BENCH(RTKinds::compile_mkdef_functions)
|
||||
BENCH(RTEquations::compile_identifiers)
|
||||
BENCH(RTEquations::compile)
|
||||
BENCH(ImperativeDefinitions::compile_first_block)
|
||||
BENCH(RTRules::rulebook_var_creators)
|
||||
BENCH(RTRules::compile_rulebooks)
|
||||
|
@ -207,7 +207,8 @@ so on. Those absolute basics are made here.
|
|||
BENCH(RTInstances::compile_metadata)
|
||||
BENCH(RTProperties::compile_metadata)
|
||||
BENCH(RTActivities::compile)
|
||||
BENCH(RTVerbs::ConjugateVerb)
|
||||
BENCH(RTVerbs::compile_conjugations)
|
||||
BENCH(RTVerbs::compile_forms)
|
||||
BENCH(CompletionModule::compile);
|
||||
if (debugging) {
|
||||
BENCH(InternalTests::InternalTestCases_routine)
|
||||
|
|
|
@ -184,7 +184,7 @@ kinds of value:
|
|||
}
|
||||
if (Kinds::eq(kind_of_constant, K_verb)) {
|
||||
verb_form *vf = Rvalues::to_verb_form(value);
|
||||
Emit::holster_iname(VH, RTVerbs::form_iname(vf));
|
||||
Emit::holster_iname(VH, RTVerbs::form_fn_iname(vf));
|
||||
return;
|
||||
}
|
||||
if (Kinds::eq(kind_of_constant, K_response)) {
|
||||
|
|
|
@ -50,7 +50,7 @@ void EquationSolver::compile_solution_inner(wording W, equation *eqn) {
|
|||
@<Identify the symbols in the equation with local variables@>;
|
||||
|
||||
TEMPORARY_TEXT(C)
|
||||
WRITE_TO(C, "Solving %n for '$w'", eqn->eqn_iname, to_solve->name);
|
||||
WRITE_TO(C, "Solving %n for '$w'", eqn->compilation_data.eqn_iname, to_solve->name);
|
||||
EmitCode::comment(C);
|
||||
DISCARD_TEXT(C)
|
||||
EquationSolver::compile_enode(eqn, eqn->parsed_equation);
|
||||
|
|
|
@ -460,12 +460,12 @@ void IndexLexicon::index_verbs(OUTPUT_STREAM) {
|
|||
Index::link(OUT, Wordings::first_wn(lex->wording_of_entry));
|
||||
if (lex->part_of_speech == AVERB_LEXE) WRITE(" ... <i>auxiliary verb</i>");
|
||||
else if (lex->part_of_speech == MVERB_LEXE) WRITE(" ... for saying only");
|
||||
else RTVerbs::tabulate_meaning(OUT, lex);
|
||||
else IndexLexicon::tabulate_meanings(OUT, lex);
|
||||
HTML_CLOSE("p");
|
||||
RTVerbs::tabulate(OUT, lex, IS_TENSE, "present");
|
||||
RTVerbs::tabulate(OUT, lex, WAS_TENSE, "past");
|
||||
RTVerbs::tabulate(OUT, lex, HASBEEN_TENSE, "present perfect");
|
||||
RTVerbs::tabulate(OUT, lex, HADBEEN_TENSE, "past perfect");
|
||||
IndexLexicon::tabulate_verbs(OUT, lex, IS_TENSE, "present");
|
||||
IndexLexicon::tabulate_verbs(OUT, lex, WAS_TENSE, "past");
|
||||
IndexLexicon::tabulate_verbs(OUT, lex, HASBEEN_TENSE, "present perfect");
|
||||
IndexLexicon::tabulate_verbs(OUT, lex, HADBEEN_TENSE, "past perfect");
|
||||
DISCARD_TEXT(entry_text)
|
||||
}
|
||||
}
|
||||
|
@ -491,3 +491,48 @@ void IndexLexicon::list_verbs_in_file(OUTPUT_STREAM, source_file *sf, inform_ext
|
|||
}
|
||||
if (verb_count > 0) HTML_CLOSE("p");
|
||||
}
|
||||
|
||||
@h Index tabulation.
|
||||
The following produces the table of verbs in the Phrasebook Index page.
|
||||
|
||||
=
|
||||
void IndexLexicon::tabulate_verbs(OUTPUT_STREAM, index_lexicon_entry *lex, int tense, char *tensename) {
|
||||
verb_usage *vu; int f = TRUE;
|
||||
LOOP_OVER(vu, verb_usage)
|
||||
if ((vu->vu_lex_entry == lex) && (VerbUsages::is_used_negatively(vu) == FALSE)
|
||||
&& (VerbUsages::get_tense_used(vu) == tense)) {
|
||||
vocabulary_entry *lastword = WordAssemblages::last_word(&(vu->vu_text));
|
||||
if (f) {
|
||||
HTML::open_indented_p(OUT, 2, "tight");
|
||||
WRITE("<i>%s:</i> ", tensename);
|
||||
} else WRITE("; ");
|
||||
if (Wide::cmp(Vocabulary::get_exemplar(lastword, FALSE), L"by") == 0) WRITE("B ");
|
||||
else WRITE("A ");
|
||||
WordAssemblages::index(OUT, &(vu->vu_text));
|
||||
if (Wide::cmp(Vocabulary::get_exemplar(lastword, FALSE), L"by") == 0) WRITE("A");
|
||||
else WRITE("B");
|
||||
f = FALSE;
|
||||
}
|
||||
if (f == FALSE) HTML_CLOSE("p");
|
||||
}
|
||||
|
||||
void IndexLexicon::tabulate_meanings(OUTPUT_STREAM, index_lexicon_entry *lex) {
|
||||
verb_usage *vu;
|
||||
LOOP_OVER(vu, verb_usage)
|
||||
if (vu->vu_lex_entry == lex) {
|
||||
if (vu->where_vu_created)
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(vu->where_vu_created)));
|
||||
binary_predicate *bp = VerbMeanings::get_regular_meaning_of_form(Verbs::base_form(VerbUsages::get_verb(vu)));
|
||||
if (bp) RTRelations::index_for_verbs(OUT, bp);
|
||||
return;
|
||||
}
|
||||
preposition *prep;
|
||||
LOOP_OVER(prep, preposition)
|
||||
if (prep->prep_lex_entry == lex) {
|
||||
if (prep->where_prep_created)
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(prep->where_prep_created)));
|
||||
binary_predicate *bp = VerbMeanings::get_regular_meaning_of_form(Verbs::find_form(copular_verb, prep, NULL));
|
||||
if (bp) RTRelations::index_for_verbs(OUT, bp);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ void ExternalFiles::start(void) {
|
|||
int ExternalFiles::production_line(int stage, int debugging,
|
||||
stopwatch_timer *sequence_timer) {
|
||||
if (stage == INTER1_CSEQ) {
|
||||
BENCH(RTExternalFiles::arrays);
|
||||
BENCH(RTExternalFiles::compile);
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -229,8 +229,8 @@ typedef struct files_data {
|
|||
int file_is_binary; /* true or false */
|
||||
int file_ownership; /* one of the |OWNED_BY_*| values above */
|
||||
struct text_stream *IFID_of_owner; /* if we know that */
|
||||
struct external_file_compilation_data compilation_data;
|
||||
struct instance *as_instance;
|
||||
struct parse_node *where_created;
|
||||
CLASS_DEFINITION
|
||||
} files_data;
|
||||
|
||||
|
@ -253,7 +253,7 @@ instance *ExternalFiles::files_create(wording W, int binary, int ownership,
|
|||
fd->file_is_binary = binary;
|
||||
fd->file_ownership = ownership;
|
||||
fd->IFID_of_owner = Str::duplicate(ifid_of_file);
|
||||
fd->compilation_data = RTExternalFiles::new_data(W);
|
||||
fd->where_created = current_sentence;
|
||||
fd->as_instance = I;
|
||||
return I;
|
||||
}
|
||||
|
|
|
@ -493,7 +493,7 @@ void Hierarchy::establish(void) {
|
|||
H_END
|
||||
|
||||
H_BEGIN(HierarchyLocations::local_submodule(conjugations))
|
||||
H_BEGIN_AP(MVERBS_HAP, I"mverb", I"_modal_verb")
|
||||
H_BEGIN_AP(MVERBS_HAP, I"modal_verb", I"_modal_verb")
|
||||
H_C_U(MVERB_NAME_MD_HL, I"^name")
|
||||
H_F_G(MODAL_CONJUGATION_FN_HL, I"conjugation_fn", I"ConjugateModalVerb")
|
||||
H_END
|
||||
|
@ -511,14 +511,14 @@ void Hierarchy::establish(void) {
|
|||
@h Equations.
|
||||
|
||||
@e EQUATIONS_HAP
|
||||
@e SOLVE_FN_HL
|
||||
@e IDENTIFIER_FN_HL
|
||||
|
||||
@<Establish equations@> =
|
||||
submodule_identity *equations = Packaging::register_submodule(I"equations");
|
||||
|
||||
H_BEGIN(HierarchyLocations::local_submodule(equations))
|
||||
H_BEGIN_AP(EQUATIONS_HAP, I"equation", I"_equation")
|
||||
H_F_U(SOLVE_FN_HL, I"solve_fn")
|
||||
H_F_U(IDENTIFIER_FN_HL, I"identifier_fn")
|
||||
H_END
|
||||
H_END
|
||||
|
||||
|
|
|
@ -1,114 +1,12 @@
|
|||
[RTVerbs::] Verbs at Run Time.
|
||||
[RTVerbs::] Conjugations.
|
||||
|
||||
To provide run-time access to verbs and their conjugations.
|
||||
To compile local _verb, _modal_verb and _verb_form packages for each verb created
|
||||
in a compilation unit, which together make up its conjuugations package.
|
||||
|
||||
@
|
||||
@h The generic/conjugations package.
|
||||
A few constants before we get under way:
|
||||
|
||||
=
|
||||
typedef struct verb_compilation_data {
|
||||
struct package_request *verb_package;
|
||||
} verb_compilation_data;
|
||||
|
||||
typedef struct verb_form_compilation_data {
|
||||
struct package_request *vf_package;
|
||||
struct inter_name *vf_iname; /* routine to conjugate this */
|
||||
struct parse_node *where_vf_created;
|
||||
} verb_form_compilation_data;
|
||||
|
||||
@
|
||||
|
||||
@d VERB_COMPILATION_LINGUISTICS_CALLBACK RTVerbs::initialise_verb
|
||||
@d VERB_FORM_COMPILATION_LINGUISTICS_CALLBACK RTVerbs::initialise_verb_form
|
||||
|
||||
=
|
||||
void RTVerbs::initialise_verb(verb *V) {
|
||||
V->verb_compilation.verb_package = NULL;
|
||||
}
|
||||
|
||||
void RTVerbs::initialise_verb_form(verb_form *VF) {
|
||||
VF->verb_form_compilation.vf_package = NULL;
|
||||
VF->verb_form_compilation.vf_iname = NULL;
|
||||
VF->verb_form_compilation.where_vf_created = current_sentence;
|
||||
}
|
||||
|
||||
package_request *RTVerbs::package(verb *V, parse_node *where) {
|
||||
if (V == NULL) internal_error("no verb identity");
|
||||
if (V->verb_compilation.verb_package == NULL)
|
||||
V->verb_compilation.verb_package = Hierarchy::local_package_to(VERBS_HAP, where);
|
||||
return V->verb_compilation.verb_package;
|
||||
}
|
||||
|
||||
inter_name *RTVerbs::form_iname(verb_form *vf) {
|
||||
if (vf->verb_form_compilation.vf_iname == NULL) {
|
||||
package_request *R =
|
||||
RTVerbs::package(vf->underlying_verb, vf->verb_form_compilation.where_vf_created);
|
||||
vf->verb_form_compilation.vf_package = Hierarchy::package_within(VERB_FORMS_HAP, R);
|
||||
vf->verb_form_compilation.vf_iname =
|
||||
Hierarchy::make_iname_in(FORM_FN_HL, vf->verb_form_compilation.vf_package);
|
||||
}
|
||||
return vf->verb_form_compilation.vf_iname;
|
||||
}
|
||||
|
||||
@h Runtime conjugation.
|
||||
|
||||
=
|
||||
void RTVerbs::ConjugateVerb_invoke_emit(verb_conjugation *vc,
|
||||
verb_conjugation *modal, int negated) {
|
||||
inter_name *cv_pos = Hierarchy::find(CV_POS_HL);
|
||||
inter_name *cv_neg = Hierarchy::find(CV_NEG_HL);
|
||||
if (modal) {
|
||||
if (negated) {
|
||||
EmitCode::call(Conjugation::conj_iname(modal));
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value, cv_neg);
|
||||
EmitCode::call(Hierarchy::find(PNTOVP_HL));
|
||||
EmitCode::val_iname(K_value, Hierarchy::find(STORY_TENSE_HL));
|
||||
EmitCode::val_iname(K_value, Conjugation::conj_iname(vc));
|
||||
EmitCode::up();
|
||||
} else {
|
||||
EmitCode::call(Conjugation::conj_iname(modal));
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value, cv_pos);
|
||||
EmitCode::call(Hierarchy::find(PNTOVP_HL));
|
||||
EmitCode::val_iname(K_value, Hierarchy::find(STORY_TENSE_HL));
|
||||
EmitCode::val_iname(K_value, Conjugation::conj_iname(vc));
|
||||
EmitCode::up();
|
||||
}
|
||||
} else {
|
||||
if (negated) {
|
||||
EmitCode::call(Conjugation::conj_iname(vc));
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value, cv_neg);
|
||||
EmitCode::call(Hierarchy::find(PNTOVP_HL));
|
||||
EmitCode::val_iname(K_value, Hierarchy::find(STORY_TENSE_HL));
|
||||
EmitCode::up();
|
||||
} else {
|
||||
EmitCode::call(Conjugation::conj_iname(vc));
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value, cv_pos);
|
||||
EmitCode::call(Hierarchy::find(PNTOVP_HL));
|
||||
EmitCode::val_iname(K_value, Hierarchy::find(STORY_TENSE_HL));
|
||||
EmitCode::up();
|
||||
}
|
||||
}
|
||||
EmitCode::inv(STORE_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::ref_iname(K_number, Hierarchy::find(SAY__P_HL));
|
||||
EmitCode::val_number(1);
|
||||
EmitCode::up();
|
||||
}
|
||||
|
||||
@ Each VC is represented by a routine at run-time:
|
||||
|
||||
=
|
||||
int RTVerbs::verb_form_is_instance(verb_form *vf) {
|
||||
verb_conjugation *vc = vf->underlying_verb->conjugation;
|
||||
if ((vc) && (vc->auxiliary_only == FALSE) && (vc->instance_of_verb) &&
|
||||
((vf->preposition == NULL) || (vf->underlying_verb != copular_verb)))
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void RTVerbs::compile_generic_constants(void) {
|
||||
inter_name *CV_POS_iname = Hierarchy::find(CV_POS_HL);
|
||||
inter_name *CV_NEG_iname = Hierarchy::find(CV_NEG_HL);
|
||||
|
@ -126,30 +24,99 @@ void RTVerbs::compile_generic_constants(void) {
|
|||
Hierarchy::make_available(CV_MEANING_iname);
|
||||
}
|
||||
|
||||
void RTVerbs::ConjugateVerb(void) {
|
||||
verb_conjugation *vc;
|
||||
LOOP_OVER(vc, verb_conjugation)
|
||||
@<Compile ConjugateVerb routine@>;
|
||||
verb_form *vf;
|
||||
LOOP_OVER(vf, verb_form)
|
||||
if (RTVerbs::verb_form_is_instance(vf))
|
||||
@<Compile ConjugateVerbForm routine@>;
|
||||
@h Compilation data for verbs.
|
||||
Each |verb| object contains this data:
|
||||
|
||||
LOOP_OVER(vf, verb_form)
|
||||
if (RTVerbs::verb_form_is_instance(vf)) {
|
||||
inter_name *md_iname =
|
||||
Hierarchy::make_iname_in(FORM_VALUE_MD_HL,
|
||||
vf->verb_form_compilation.vf_package);
|
||||
Emit::iname_constant(md_iname, K_value, RTVerbs::form_iname(vf));
|
||||
md_iname =
|
||||
Hierarchy::make_iname_in(FORM_SORTING_MD_HL,
|
||||
vf->verb_form_compilation.vf_package);
|
||||
Emit::numeric_constant(md_iname, (inter_ti) vf->allocation_id);
|
||||
}
|
||||
@d VERB_COMPILATION_LINGUISTICS_CALLBACK RTVerbs::initialise_verb
|
||||
|
||||
=
|
||||
typedef struct verb_compilation_data {
|
||||
struct package_request *verb_package;
|
||||
} verb_compilation_data;
|
||||
|
||||
void RTVerbs::initialise_verb(verb *V) {
|
||||
V->compilation_data.verb_package = NULL;
|
||||
}
|
||||
|
||||
@<Compile ConjugateVerb routine@> =
|
||||
packaging_state save = Functions::begin(Conjugation::conj_iname(vc));
|
||||
@ The package is created on demand. It will contain a conjugation function,
|
||||
and some subpackages for forms:
|
||||
|
||||
=
|
||||
package_request *RTVerbs::package(verb *V, parse_node *where) {
|
||||
if (V == NULL) internal_error("no verb identity");
|
||||
if (V->compilation_data.verb_package == NULL)
|
||||
V->compilation_data.verb_package = Hierarchy::local_package_to(VERBS_HAP, where);
|
||||
return V->compilation_data.verb_package;
|
||||
}
|
||||
|
||||
@ But modal verbs, which have no underlying |verb| structure, are also given
|
||||
conjugation functions. Those have to live somewhere, so they go into free-standing
|
||||
|_modal_verb| packages:
|
||||
|
||||
=
|
||||
package_request *RTVerbs::modal_package(parse_node *where) {
|
||||
return Hierarchy::local_package_to(MVERBS_HAP, where);
|
||||
}
|
||||
|
||||
@h Compilation data for conjgations.
|
||||
Each |verb_conjugation| object contains this data:
|
||||
|
||||
@d VC_COMPILATION_LINGUISTICS_CALLBACK RTVerbs::initialise_vc
|
||||
|
||||
=
|
||||
typedef struct verb_conjugation_compilation_data {
|
||||
struct inter_name *vc_iname;
|
||||
struct parse_node *where_vc_created;
|
||||
} verb_conjugation_compilation_data;
|
||||
|
||||
void RTVerbs::initialise_vc(verb_conjugation *vc) {
|
||||
vc->compilation_data.vc_iname = NULL;
|
||||
vc->compilation_data.where_vc_created = current_sentence;
|
||||
}
|
||||
|
||||
@ This produces an iname for the conjugation function, whether it's for a
|
||||
modal or nonmodal verb:
|
||||
|
||||
=
|
||||
inter_name *RTVerbs::conjugation_fn_iname(verb_conjugation *vc) {
|
||||
if (vc->compilation_data.vc_iname == NULL) {
|
||||
if (vc->vc_conjugates == NULL) {
|
||||
package_request *R = RTVerbs::modal_package(vc->compilation_data.where_vc_created);
|
||||
TEMPORARY_TEXT(ANT)
|
||||
WRITE_TO(ANT, "%A (modal)",
|
||||
&(vc->tabulations[ACTIVE_VOICE].vc_text[IS_TENSE][POSITIVE_SENSE][THIRD_PERSON]));
|
||||
Hierarchy::apply_metadata(R, MVERB_NAME_MD_HL, ANT);
|
||||
DISCARD_TEXT(ANT)
|
||||
vc->compilation_data.vc_iname = Hierarchy::make_iname_in(MODAL_CONJUGATION_FN_HL, R);
|
||||
} else {
|
||||
package_request *R =
|
||||
RTVerbs::package(vc->vc_conjugates, vc->compilation_data.where_vc_created);
|
||||
TEMPORARY_TEXT(ANT)
|
||||
WRITE_TO(ANT, "to %A", &(vc->infinitive));
|
||||
Hierarchy::apply_metadata(R, VERB_NAME_MD_HL, ANT);
|
||||
DISCARD_TEXT(ANT)
|
||||
vc->compilation_data.vc_iname = Hierarchy::make_iname_in(NONMODAL_CONJUGATION_FN_HL, R);
|
||||
}
|
||||
}
|
||||
return vc->compilation_data.vc_iname;
|
||||
}
|
||||
|
||||
@h Compilation.
|
||||
|
||||
=
|
||||
void RTVerbs::compile_conjugations(void) {
|
||||
verb_conjugation *vc;
|
||||
LOOP_OVER(vc, verb_conjugation) {
|
||||
text_stream *desc = Str::new();
|
||||
WRITE_TO(desc, "conjugation of '%A'", &(vc->infinitive));
|
||||
Sequence::queue(&RTVerbs::vc_compilation_agent,
|
||||
STORE_POINTER_verb_conjugation(vc), desc);
|
||||
}
|
||||
}
|
||||
|
||||
void RTVerbs::vc_compilation_agent(compilation_subtask *t) {
|
||||
verb_conjugation *vc = RETRIEVE_POINTER_verb_conjugation(t->data);
|
||||
packaging_state save = Functions::begin(RTVerbs::conjugation_fn_iname(vc));
|
||||
inter_symbol *fn_s = LocalVariables::new_other_as_symbol(I"fn");
|
||||
inter_symbol *vp_s = LocalVariables::new_other_as_symbol(I"vp");
|
||||
inter_symbol *t_s = LocalVariables::new_other_as_symbol(I"t");
|
||||
|
@ -189,7 +156,8 @@ void RTVerbs::ConjugateVerb(void) {
|
|||
@<Check for modality@>;
|
||||
|
||||
verb *vi = vc->vc_conjugates;
|
||||
verb_meaning *vm = (vi)?VerbMeanings::first_unspecial_meaning_of_verb_form(Verbs::base_form(vi)):NULL;
|
||||
verb_meaning *vm =
|
||||
(vi)?VerbMeanings::first_unspecial_meaning_of_verb_form(Verbs::base_form(vi)):NULL;
|
||||
binary_predicate *meaning = VerbMeanings::get_regular_meaning(vm);
|
||||
inter_name *rel_iname = RTRelations::default_iname();
|
||||
if (meaning) {
|
||||
|
@ -241,10 +209,143 @@ void RTVerbs::ConjugateVerb(void) {
|
|||
EmitCode::up();
|
||||
|
||||
Functions::end(save);
|
||||
}
|
||||
|
||||
@<Compile ConjugateVerbForm routine@> =
|
||||
@h Invocation as inflected text.
|
||||
Verb conjugations can be invoked in say phrases, as in the text substitution
|
||||
"[growl]" in the example "The [caged animal] [growl] at the zookeeper." This
|
||||
function compiles the necessary code, which is basically a function call to
|
||||
the VC's conjugation function:
|
||||
|
||||
=
|
||||
void RTVerbs::ConjugateVerb_invoke_emit(verb_conjugation *vc,
|
||||
verb_conjugation *modal, int negated) {
|
||||
inter_name *cv_pos = Hierarchy::find(CV_POS_HL);
|
||||
inter_name *cv_neg = Hierarchy::find(CV_NEG_HL);
|
||||
if (modal) {
|
||||
if (negated) {
|
||||
EmitCode::call(RTVerbs::conjugation_fn_iname(modal));
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value, cv_neg);
|
||||
EmitCode::call(Hierarchy::find(PNTOVP_HL));
|
||||
EmitCode::val_iname(K_value, Hierarchy::find(STORY_TENSE_HL));
|
||||
EmitCode::val_iname(K_value, RTVerbs::conjugation_fn_iname(vc));
|
||||
EmitCode::up();
|
||||
} else {
|
||||
EmitCode::call(RTVerbs::conjugation_fn_iname(modal));
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value, cv_pos);
|
||||
EmitCode::call(Hierarchy::find(PNTOVP_HL));
|
||||
EmitCode::val_iname(K_value, Hierarchy::find(STORY_TENSE_HL));
|
||||
EmitCode::val_iname(K_value, RTVerbs::conjugation_fn_iname(vc));
|
||||
EmitCode::up();
|
||||
}
|
||||
} else {
|
||||
if (negated) {
|
||||
EmitCode::call(RTVerbs::conjugation_fn_iname(vc));
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value, cv_neg);
|
||||
EmitCode::call(Hierarchy::find(PNTOVP_HL));
|
||||
EmitCode::val_iname(K_value, Hierarchy::find(STORY_TENSE_HL));
|
||||
EmitCode::up();
|
||||
} else {
|
||||
EmitCode::call(RTVerbs::conjugation_fn_iname(vc));
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value, cv_pos);
|
||||
EmitCode::call(Hierarchy::find(PNTOVP_HL));
|
||||
EmitCode::val_iname(K_value, Hierarchy::find(STORY_TENSE_HL));
|
||||
EmitCode::up();
|
||||
}
|
||||
}
|
||||
EmitCode::inv(STORE_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::ref_iname(K_number, Hierarchy::find(SAY__P_HL));
|
||||
EmitCode::val_number(1);
|
||||
EmitCode::up();
|
||||
}
|
||||
|
||||
@h Compilation data for verb forms.
|
||||
Now we turn to the "forms" of a verb; each one makes a |_verb_form| package
|
||||
inside its verb's |_verb| package. (Modal verbs do not have forms.)
|
||||
|
||||
Each |verb_form| object contains this data:
|
||||
|
||||
@d VERB_FORM_COMPILATION_LINGUISTICS_CALLBACK RTVerbs::initialise_verb_form
|
||||
|
||||
=
|
||||
typedef struct verb_form_compilation_data {
|
||||
struct package_request *vf_package;
|
||||
struct inter_name *vf_iname; /* routine to conjugate this */
|
||||
struct parse_node *where_vf_created;
|
||||
} verb_form_compilation_data;
|
||||
|
||||
void RTVerbs::initialise_verb_form(verb_form *VF) {
|
||||
VF->verb_form_compilation.vf_package = NULL;
|
||||
VF->verb_form_compilation.vf_iname = NULL;
|
||||
VF->verb_form_compilation.where_vf_created = current_sentence;
|
||||
}
|
||||
|
||||
@ And these too are then filled out on demand. Note that the |_verb_form|
|
||||
packages occur as sub-packages of the relevant |_verb| packages.
|
||||
|
||||
=
|
||||
package_request *RTVerbs::form_package(verb_form *vf) {
|
||||
if (vf->verb_form_compilation.vf_package == NULL) {
|
||||
package_request *R = RTVerbs::package(vf->underlying_verb,
|
||||
vf->verb_form_compilation.where_vf_created);
|
||||
vf->verb_form_compilation.vf_package =
|
||||
Hierarchy::package_within(VERB_FORMS_HAP, R);
|
||||
}
|
||||
return vf->verb_form_compilation.vf_package;
|
||||
}
|
||||
|
||||
inter_name *RTVerbs::form_fn_iname(verb_form *vf) {
|
||||
if (vf->verb_form_compilation.vf_iname == NULL)
|
||||
vf->verb_form_compilation.vf_iname =
|
||||
Hierarchy::make_iname_in(FORM_FN_HL, RTVerbs::form_package(vf));
|
||||
return vf->verb_form_compilation.vf_iname;
|
||||
}
|
||||
|
||||
@h Compilation.
|
||||
|
||||
=
|
||||
void RTVerbs::compile_forms(void) {
|
||||
verb_form *vf;
|
||||
LOOP_OVER(vf, verb_form)
|
||||
if (RTVerbs::verb_form_is_instance(vf)) {
|
||||
text_stream *desc = Str::new();
|
||||
WRITE_TO(desc, "form of '%A'", &(vf->underlying_verb->conjugation->infinitive));
|
||||
Sequence::queue(&RTVerbs::vf_compilation_agent,
|
||||
STORE_POINTER_verb_form(vf), desc);
|
||||
}
|
||||
}
|
||||
|
||||
@ Not every verb form is an instance, that is, gives rise to a value at runtime:
|
||||
|
||||
=
|
||||
int RTVerbs::verb_form_is_instance(verb_form *vf) {
|
||||
verb_conjugation *vc = vf->underlying_verb->conjugation;
|
||||
packaging_state save = Functions::begin(RTVerbs::form_iname(vf));
|
||||
if ((vc) && (vc->auxiliary_only == FALSE) && (vc->instance_of_verb) &&
|
||||
((vf->preposition == NULL) || (vf->underlying_verb != copular_verb)))
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void RTVerbs::vf_compilation_agent(compilation_subtask *t) {
|
||||
verb_form *vf = RETRIEVE_POINTER_verb_form(t->data);
|
||||
|
||||
package_request *P = RTVerbs::form_package(vf);
|
||||
Emit::iname_constant(Hierarchy::make_iname_in(FORM_VALUE_MD_HL, P), K_value,
|
||||
RTVerbs::form_fn_iname(vf));
|
||||
Emit::numeric_constant(Hierarchy::make_iname_in(FORM_SORTING_MD_HL, P),
|
||||
(inter_ti) vf->allocation_id);
|
||||
|
||||
@<Compile ConjugateVerbForm function@>;
|
||||
}
|
||||
|
||||
@<Compile ConjugateVerbForm function@> =
|
||||
verb_conjugation *vc = vf->underlying_verb->conjugation;
|
||||
packaging_state save = Functions::begin(RTVerbs::form_fn_iname(vf));
|
||||
inter_symbol *fn_s = LocalVariables::new_other_as_symbol(I"fn");
|
||||
inter_symbol *vp_s = LocalVariables::new_other_as_symbol(I"vp");
|
||||
inter_symbol *t_s = LocalVariables::new_other_as_symbol(I"t");
|
||||
|
@ -258,7 +359,7 @@ void RTVerbs::ConjugateVerb(void) {
|
|||
EmitCode::inv(STORE_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::ref_symbol(K_value, t_s);
|
||||
EmitCode::call(Conjugation::conj_iname(vc));
|
||||
EmitCode::call(RTVerbs::conjugation_fn_iname(vc));
|
||||
EmitCode::down();
|
||||
EmitCode::val_symbol(K_value, fn_s);
|
||||
EmitCode::val_symbol(K_value, vp_s);
|
||||
|
@ -324,7 +425,8 @@ void RTVerbs::ConjugateVerb(void) {
|
|||
for (int tense=0; tense<NO_KNOWN_TENSES; tense++)
|
||||
for (int person=0; person<NO_KNOWN_PERSONS; person++)
|
||||
for (int number=0; number<NO_KNOWN_NUMBERS; number++)
|
||||
if (vc->tabulations[ACTIVE_VOICE].modal_auxiliary_usage[tense][sense][person][number] != 0)
|
||||
if (vc->tabulations[ACTIVE_VOICE].
|
||||
modal_auxiliary_usage[tense][sense][person][number] != 0)
|
||||
modal_verb = TRUE;
|
||||
|
||||
@<Compile conjugation in this sense@> =
|
||||
|
@ -334,7 +436,8 @@ void RTVerbs::ConjugateVerb(void) {
|
|||
word_assemblage *common = NULL, *common_except_3PS = NULL;
|
||||
for (int person=0; person<NO_KNOWN_PERSONS; person++)
|
||||
for (int number=0; number<NO_KNOWN_NUMBERS; number++) {
|
||||
word_assemblage *wa = &(vc->tabulations[ACTIVE_VOICE].vc_text[tense][sense][person][number]);
|
||||
word_assemblage *wa = &(vc->tabulations[ACTIVE_VOICE].
|
||||
vc_text[tense][sense][person][number]);
|
||||
if (WordAssemblages::nonempty(*wa)) {
|
||||
if (some_exist) {
|
||||
if (WordAssemblages::eq(wa, common) == FALSE)
|
||||
|
@ -350,7 +453,8 @@ void RTVerbs::ConjugateVerb(void) {
|
|||
if ((person != THIRD_PERSON) || (number != SINGULAR_NUMBER))
|
||||
common_except_3PS = wa;
|
||||
}
|
||||
if (vc->tabulations[ACTIVE_VOICE].modal_auxiliary_usage[tense][sense][person][number] != 0)
|
||||
if (vc->tabulations[ACTIVE_VOICE].
|
||||
modal_auxiliary_usage[tense][sense][person][number] != 0)
|
||||
some_are_modal = TRUE;
|
||||
}
|
||||
else some_dont_exist = TRUE;
|
||||
|
@ -382,7 +486,8 @@ void RTVerbs::ConjugateVerb(void) {
|
|||
EmitCode::down();
|
||||
for (int person=0; person<NO_KNOWN_PERSONS; person++)
|
||||
for (int number=0; number<NO_KNOWN_NUMBERS; number++) {
|
||||
word_assemblage *wa = &(vc->tabulations[ACTIVE_VOICE].vc_text[tense][sense][person][number]);
|
||||
word_assemblage *wa = &(vc->tabulations[ACTIVE_VOICE].
|
||||
vc_text[tense][sense][person][number]);
|
||||
if (WordAssemblages::nonempty(*wa)) {
|
||||
EmitCode::inv(CASE_BIP);
|
||||
EmitCode::down();
|
||||
|
@ -390,7 +495,8 @@ void RTVerbs::ConjugateVerb(void) {
|
|||
EmitCode::val_number((inter_ti) part);
|
||||
EmitCode::code();
|
||||
EmitCode::down();
|
||||
int mau = vc->tabulations[ACTIVE_VOICE].modal_auxiliary_usage[tense][sense][person][number];
|
||||
int mau = vc->tabulations[ACTIVE_VOICE].
|
||||
modal_auxiliary_usage[tense][sense][person][number];
|
||||
RTVerbs::conj_from_wa(wa, vc, modal_to_s, mau);
|
||||
EmitCode::up();
|
||||
EmitCode::up();
|
||||
|
@ -409,49 +515,41 @@ void RTVerbs::ConjugateVerb(void) {
|
|||
EmitCode::up();
|
||||
EmitCode::code();
|
||||
EmitCode::down();
|
||||
word_assemblage *wa = &(vc->tabulations[ACTIVE_VOICE].vc_text[tense][sense][THIRD_PERSON][SINGULAR_NUMBER]);
|
||||
word_assemblage *wa = &(vc->tabulations[ACTIVE_VOICE].
|
||||
vc_text[tense][sense][THIRD_PERSON][SINGULAR_NUMBER]);
|
||||
RTVerbs::conj_from_wa(wa, vc, modal_to_s, 0);
|
||||
EmitCode::up();
|
||||
EmitCode::code();
|
||||
EmitCode::down();
|
||||
wa = &(vc->tabulations[ACTIVE_VOICE].vc_text[tense][sense][FIRST_PERSON][SINGULAR_NUMBER]);
|
||||
wa = &(vc->tabulations[ACTIVE_VOICE].
|
||||
vc_text[tense][sense][FIRST_PERSON][SINGULAR_NUMBER]);
|
||||
RTVerbs::conj_from_wa(wa, vc, modal_to_s, 0);
|
||||
EmitCode::up();
|
||||
EmitCode::up();
|
||||
|
||||
@<Compile for the case where all six parts are the same@> =
|
||||
word_assemblage *wa = &(vc->tabulations[ACTIVE_VOICE].vc_text[tense][sense][FIRST_PERSON][SINGULAR_NUMBER]);
|
||||
word_assemblage *wa = &(vc->tabulations[ACTIVE_VOICE].
|
||||
vc_text[tense][sense][FIRST_PERSON][SINGULAR_NUMBER]);
|
||||
RTVerbs::conj_from_wa(wa, vc, modal_to_s, 0);
|
||||
|
||||
@ =
|
||||
void RTVerbs::conj_from_wa(word_assemblage *wa, verb_conjugation *vc, inter_symbol *modal_to_s, int mau) {
|
||||
@h Utility functions.
|
||||
Needed by the above:
|
||||
|
||||
=
|
||||
void RTVerbs::conj_from_wa(word_assemblage *wa, verb_conjugation *vc,
|
||||
inter_symbol *modal_to_s, int mau) {
|
||||
EmitCode::inv(PRINT_BIP);
|
||||
EmitCode::down();
|
||||
TEMPORARY_TEXT(OUT)
|
||||
if ((RTVerbs::takes_contraction_form(wa) == FALSE) && (RTVerbs::takes_contraction_form(&(vc->infinitive))))
|
||||
if ((RTVerbs::takes_contraction_form(wa) == FALSE) &&
|
||||
(RTVerbs::takes_contraction_form(&(vc->infinitive))))
|
||||
WRITE(" ");
|
||||
int i, n;
|
||||
int n;
|
||||
vocabulary_entry **words;
|
||||
WordAssemblages::as_array(wa, &words, &n);
|
||||
for (i=0; i<n; i++) {
|
||||
for (int i=0; i<n; i++) {
|
||||
if (i>0) WRITE(" ");
|
||||
wchar_t *q = Vocabulary::get_exemplar(words[i], FALSE);
|
||||
if ((q[0]) && (q[Wide::len(q)-1] == '*')) {
|
||||
TEMPORARY_TEXT(unstarred)
|
||||
WRITE_TO(unstarred, "%V", words[i]);
|
||||
Str::delete_last_character(unstarred);
|
||||
feed_t id = Feeds::begin();
|
||||
Feeds::feed_C_string(L" ");
|
||||
Feeds::feed_text(unstarred);
|
||||
Feeds::feed_C_string(L" ");
|
||||
DISCARD_TEXT(unstarred)
|
||||
wording W = Feeds::end(id);
|
||||
adjective *aph = Adjectives::declare(W, vc->defined_in);
|
||||
WRITE("\"; %n(prior_named_noun, (prior_named_list >= 2)); print \"",
|
||||
aph->adjective_compilation.adaptive_printing_fn_iname);
|
||||
} else {
|
||||
WRITE("%V", words[i]);
|
||||
}
|
||||
WRITE("%V", words[i]);
|
||||
}
|
||||
EmitCode::val_text(OUT);
|
||||
DISCARD_TEXT(OUT)
|
||||
|
@ -476,6 +574,9 @@ void RTVerbs::conj_from_wa(word_assemblage *wa, verb_conjugation *vc, inter_symb
|
|||
}
|
||||
}
|
||||
|
||||
@ Used to adjust spacing so that we get |I've|, not |I 've|:
|
||||
|
||||
=
|
||||
int RTVerbs::takes_contraction_form(word_assemblage *wa) {
|
||||
vocabulary_entry *ve = WordAssemblages::first_word(wa);
|
||||
if (ve == NULL) return FALSE;
|
||||
|
@ -483,70 +584,3 @@ int RTVerbs::takes_contraction_form(word_assemblage *wa) {
|
|||
if (p[0] == '\'') return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@h Debug log.
|
||||
The following dumps the entire stock of registered verb and preposition
|
||||
usages to the debugging log.
|
||||
|
||||
=
|
||||
void RTVerbs::log(verb_usage *vu) {
|
||||
VerbUsages::write_usage(DL, vu);
|
||||
}
|
||||
|
||||
void RTVerbs::log_all(void) {
|
||||
verb_usage *vu;
|
||||
preposition *prep;
|
||||
LOG("The current S-grammar has the following verb and preposition usages:\n");
|
||||
LOOP_OVER(vu, verb_usage) {
|
||||
RTVerbs::log(vu);
|
||||
LOG("\n");
|
||||
}
|
||||
LOOP_OVER(prep, preposition) {
|
||||
LOG("$p\n", prep);
|
||||
}
|
||||
}
|
||||
|
||||
@h Index tabulation.
|
||||
The following produces the table of verbs in the Phrasebook Index page.
|
||||
|
||||
=
|
||||
void RTVerbs::tabulate(OUTPUT_STREAM, index_lexicon_entry *lex, int tense, char *tensename) {
|
||||
verb_usage *vu; int f = TRUE;
|
||||
LOOP_OVER(vu, verb_usage)
|
||||
if ((vu->vu_lex_entry == lex) && (VerbUsages::is_used_negatively(vu) == FALSE)
|
||||
&& (VerbUsages::get_tense_used(vu) == tense)) {
|
||||
vocabulary_entry *lastword = WordAssemblages::last_word(&(vu->vu_text));
|
||||
if (f) {
|
||||
HTML::open_indented_p(OUT, 2, "tight");
|
||||
WRITE("<i>%s:</i> ", tensename);
|
||||
} else WRITE("; ");
|
||||
if (Wide::cmp(Vocabulary::get_exemplar(lastword, FALSE), L"by") == 0) WRITE("B ");
|
||||
else WRITE("A ");
|
||||
WordAssemblages::index(OUT, &(vu->vu_text));
|
||||
if (Wide::cmp(Vocabulary::get_exemplar(lastword, FALSE), L"by") == 0) WRITE("A");
|
||||
else WRITE("B");
|
||||
f = FALSE;
|
||||
}
|
||||
if (f == FALSE) HTML_CLOSE("p");
|
||||
}
|
||||
|
||||
void RTVerbs::tabulate_meaning(OUTPUT_STREAM, index_lexicon_entry *lex) {
|
||||
verb_usage *vu;
|
||||
LOOP_OVER(vu, verb_usage)
|
||||
if (vu->vu_lex_entry == lex) {
|
||||
if (vu->where_vu_created)
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(vu->where_vu_created)));
|
||||
binary_predicate *bp = VerbMeanings::get_regular_meaning_of_form(Verbs::base_form(VerbUsages::get_verb(vu)));
|
||||
if (bp) RTRelations::index_for_verbs(OUT, bp);
|
||||
return;
|
||||
}
|
||||
preposition *prep;
|
||||
LOOP_OVER(prep, preposition)
|
||||
if (prep->prep_lex_entry == lex) {
|
||||
if (prep->where_prep_created)
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(prep->where_prep_created)));
|
||||
binary_predicate *bp = VerbMeanings::get_regular_meaning_of_form(Verbs::find_form(copular_verb, prep, NULL));
|
||||
if (bp) RTRelations::index_for_verbs(OUT, bp);
|
||||
return;
|
||||
}
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
[RTEquations::] Equations Support.
|
||||
|
||||
To compile unique identifiers for equations.
|
||||
|
||||
@ Each equation has a distinct runtime identifier, which in fact is a stub
|
||||
function returning false; but because these functions are all different,
|
||||
they provide values different from each other and from all other functions.
|
||||
|
||||
=
|
||||
void RTEquations::new_identifier(equation *eqn) {
|
||||
package_request *PR = Hierarchy::local_package(EQUATIONS_HAP);
|
||||
eqn->eqn_iname = Hierarchy::make_iname_in(SOLVE_FN_HL, PR);
|
||||
}
|
||||
|
||||
inter_name *RTEquations::identifier(equation *eqn) {
|
||||
return eqn->eqn_iname;
|
||||
}
|
||||
|
||||
void RTEquations::compile_identifiers(void) {
|
||||
equation *eqn;
|
||||
LOOP_OVER(eqn, equation) {
|
||||
packaging_state save = Functions::begin(eqn->eqn_iname);
|
||||
EmitCode::rfalse();
|
||||
Functions::end(save);
|
||||
}
|
||||
}
|
35
inform7/runtime-module/Chapter 5/Equations.w
Normal file
35
inform7/runtime-module/Chapter 5/Equations.w
Normal file
|
@ -0,0 +1,35 @@
|
|||
[RTEquations::] Equations.
|
||||
|
||||
To compile a local _equation package for each equation in a compilation unit.
|
||||
|
||||
@ Each equation has a distinct runtime identifier, which in fact is a stub
|
||||
function returning false; but because these functions are all different,
|
||||
they provide values different from each other and from all other functions.
|
||||
|
||||
There is otherwise nothing to see. Equations are solved using inline code,
|
||||
not here; see //imperative: Compile Solutions to Equations//.
|
||||
|
||||
=
|
||||
typedef struct equation_compilation_data {
|
||||
struct inter_name *eqn_iname; /* used at run-time to identify this */
|
||||
} equation_compilation_data;
|
||||
|
||||
equation_compilation_data RTEquations::new_compilation_data(equation *eqn) {
|
||||
equation_compilation_data ecd;
|
||||
package_request *P = Hierarchy::local_package(EQUATIONS_HAP);
|
||||
ecd.eqn_iname = Hierarchy::make_iname_in(IDENTIFIER_FN_HL, P);
|
||||
return ecd;
|
||||
}
|
||||
|
||||
inter_name *RTEquations::identifier(equation *eqn) {
|
||||
return eqn->compilation_data.eqn_iname;
|
||||
}
|
||||
|
||||
void RTEquations::compile(void) {
|
||||
equation *eqn;
|
||||
LOOP_OVER(eqn, equation) {
|
||||
packaging_state save = Functions::begin(RTEquations::identifier(eqn));
|
||||
EmitCode::rfalse();
|
||||
Functions::end(save);
|
||||
}
|
||||
}
|
71
inform7/runtime-module/Chapter 5/External Files.w
Normal file
71
inform7/runtime-module/Chapter 5/External Files.w
Normal file
|
@ -0,0 +1,71 @@
|
|||
[RTExternalFiles::] External Files.
|
||||
|
||||
To compile a local _external_file package for each file in a compilation unit.
|
||||
|
||||
@ Everything is done here:
|
||||
|
||||
=
|
||||
void RTExternalFiles::compile(void) {
|
||||
files_data *exf;
|
||||
LOOP_OVER(exf, files_data) {
|
||||
text_stream *desc = Str::new();
|
||||
WRITE_TO(desc, "external file '%W'", exf->name);
|
||||
Sequence::queue(&RTExternalFiles::compilation_agent,
|
||||
STORE_POINTER_files_data(exf), desc);
|
||||
}
|
||||
}
|
||||
|
||||
@ Via the following agent, which makes a single |_external_file| package:
|
||||
|
||||
=
|
||||
void RTExternalFiles::compilation_agent(compilation_subtask *t) {
|
||||
files_data *exf = RETRIEVE_POINTER_files_data(t->data);
|
||||
wording W = exf->name;
|
||||
package_request *P = Hierarchy::local_package_to(EXTERNAL_FILES_HAP, exf->where_created);
|
||||
inter_name *exf_iname = Hierarchy::make_iname_with_memo(FILE_HL, P, W);
|
||||
inter_name *IFID_array_iname = NULL;
|
||||
if (exf->file_ownership == OWNED_BY_SPECIFIC_PROJECT) @<Make an ownership record@>;
|
||||
@<Make the file metadata array@>;
|
||||
@<Make the value metadata@>;
|
||||
}
|
||||
|
||||
@<Make an ownership record@> =
|
||||
IFID_array_iname = Hierarchy::make_iname_with_memo(IFID_HL, P, W);
|
||||
packaging_state save =
|
||||
EmitArrays::begin_string(IFID_array_iname, K_value);
|
||||
TEMPORARY_TEXT(II)
|
||||
WRITE_TO(II, "//%S//", exf->IFID_of_owner);
|
||||
EmitArrays::text_entry(II);
|
||||
DISCARD_TEXT(II)
|
||||
EmitArrays::end(save);
|
||||
|
||||
@<Make the file metadata array@> =
|
||||
packaging_state save = EmitArrays::begin(exf_iname, K_value);
|
||||
EmitArrays::iname_entry(Hierarchy::find(AUXF_MAGIC_VALUE_HL));
|
||||
EmitArrays::iname_entry(Hierarchy::find(AUXF_STATUS_IS_CLOSED_HL));
|
||||
if (exf->file_is_binary) EmitArrays::numeric_entry(1);
|
||||
else EmitArrays::numeric_entry(0);
|
||||
EmitArrays::numeric_entry(0);
|
||||
TEMPORARY_TEXT(WW)
|
||||
WRITE_TO(WW, "%w", Lexer::word_raw_text(exf->unextended_filename));
|
||||
Str::delete_first_character(WW);
|
||||
Str::delete_last_character(WW);
|
||||
EmitArrays::text_entry(WW);
|
||||
DISCARD_TEXT(WW)
|
||||
switch (exf->file_ownership) {
|
||||
case OWNED_BY_THIS_PROJECT:
|
||||
EmitArrays::iname_entry(RTBibliographicData::IFID_iname()); break;
|
||||
case OWNED_BY_ANOTHER_PROJECT:
|
||||
EmitArrays::null_entry(); break;
|
||||
case OWNED_BY_SPECIFIC_PROJECT:
|
||||
EmitArrays::iname_entry(IFID_array_iname); break;
|
||||
}
|
||||
EmitArrays::end(save);
|
||||
|
||||
@ At runtime, an external file is represented by a pointer to its metadata
|
||||
array.
|
||||
|
||||
@<Make the value metadata@> =
|
||||
inter_name *md_iname = Hierarchy::make_iname_in(INSTANCE_FILE_VALUE_MD_HL,
|
||||
RTInstances::package(exf->as_instance));
|
||||
Emit::iname_constant(md_iname, K_value, exf_iname);
|
|
@ -1,60 +0,0 @@
|
|||
[RTExternalFiles::] External Files.
|
||||
|
||||
@ External files are written in Inter as their array names:
|
||||
|
||||
=
|
||||
typedef struct external_file_compilation_data {
|
||||
struct inter_name *exf_iname;
|
||||
struct inter_name *IFID_array_iname;
|
||||
} external_file_compilation_data;
|
||||
|
||||
external_file_compilation_data RTExternalFiles::new_data(wording W) {
|
||||
external_file_compilation_data efcd;
|
||||
package_request *P = Hierarchy::local_package(EXTERNAL_FILES_HAP);
|
||||
efcd.exf_iname = Hierarchy::make_iname_with_memo(FILE_HL, P, W);
|
||||
efcd.IFID_array_iname = Hierarchy::make_iname_with_memo(IFID_HL, P, W);
|
||||
return efcd;
|
||||
}
|
||||
|
||||
void RTExternalFiles::arrays(void) {
|
||||
files_data *exf;
|
||||
LOOP_OVER(exf, files_data) {
|
||||
if (exf->file_ownership == OWNED_BY_SPECIFIC_PROJECT) {
|
||||
packaging_state save =
|
||||
EmitArrays::begin_string(exf->compilation_data.IFID_array_iname, K_value);
|
||||
TEMPORARY_TEXT(II)
|
||||
WRITE_TO(II, "//%S//", exf->IFID_of_owner);
|
||||
EmitArrays::text_entry(II);
|
||||
DISCARD_TEXT(II)
|
||||
EmitArrays::end(save);
|
||||
}
|
||||
}
|
||||
|
||||
LOOP_OVER(exf, files_data) {
|
||||
packaging_state save = EmitArrays::begin(exf->compilation_data.exf_iname, K_value);
|
||||
EmitArrays::iname_entry(Hierarchy::find(AUXF_MAGIC_VALUE_HL));
|
||||
EmitArrays::iname_entry(Hierarchy::find(AUXF_STATUS_IS_CLOSED_HL));
|
||||
if (exf->file_is_binary) EmitArrays::numeric_entry(1);
|
||||
else EmitArrays::numeric_entry(0);
|
||||
EmitArrays::numeric_entry(0);
|
||||
TEMPORARY_TEXT(WW)
|
||||
WRITE_TO(WW, "%w", Lexer::word_raw_text(exf->unextended_filename));
|
||||
Str::delete_first_character(WW);
|
||||
Str::delete_last_character(WW);
|
||||
EmitArrays::text_entry(WW);
|
||||
DISCARD_TEXT(WW)
|
||||
switch (exf->file_ownership) {
|
||||
case OWNED_BY_THIS_PROJECT: EmitArrays::iname_entry(RTBibliographicData::IFID_iname()); break;
|
||||
case OWNED_BY_ANOTHER_PROJECT: EmitArrays::null_entry(); break;
|
||||
case OWNED_BY_SPECIFIC_PROJECT: EmitArrays::iname_entry(exf->compilation_data.IFID_array_iname); break;
|
||||
}
|
||||
EmitArrays::end(save);
|
||||
}
|
||||
|
||||
LOOP_OVER(exf, files_data) {
|
||||
inter_name *md_iname = Hierarchy::make_iname_in(INSTANCE_FILE_VALUE_MD_HL,
|
||||
RTInstances::package(exf->as_instance));
|
||||
Emit::iname_constant(md_iname, K_value, exf->compilation_data.exf_iname);
|
||||
}
|
||||
}
|
||||
|
|
@ -35,12 +35,16 @@ Chapter 4: Enclosed Resources
|
|||
Stored Action Literals
|
||||
Group Together
|
||||
|
||||
Chapter 5: Miscellany
|
||||
Chapter 5: Local Resources
|
||||
Activities
|
||||
Adjectives
|
||||
Chronology
|
||||
Conjugations
|
||||
Equations
|
||||
External Files
|
||||
Rules
|
||||
Runtime Support for Kinds
|
||||
Literal Patterns at Run Time
|
||||
Equations Support
|
||||
Temporary Variables
|
||||
Variables
|
||||
Properties
|
||||
|
@ -48,14 +52,11 @@ Chapter 5: Miscellany
|
|||
Emit Property Values
|
||||
Instances
|
||||
Instance Counting
|
||||
Adjectives
|
||||
Noun Identifiers
|
||||
Verbs at Run Time
|
||||
Relations at Run Time
|
||||
Runtime Support for Tables
|
||||
Chronology
|
||||
|
||||
Chapter 6: World Model
|
||||
Chapter 6: Completion Resources
|
||||
Naming
|
||||
Bibliographic Data
|
||||
Spatial
|
||||
|
@ -85,7 +86,6 @@ Chapter 8: Command Parser
|
|||
Chapter 9: Multimedia
|
||||
Figures
|
||||
Sound Effects
|
||||
External Files
|
||||
|
||||
Chapter 10: Testing
|
||||
Showme Command
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue