1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-06-26 12:10:44 +03:00

Reworked typename instructions

This commit is contained in:
Graham Nelson 2022-03-11 21:38:53 +00:00
parent 4b561c4bd0
commit c3b7e28bec
100 changed files with 859 additions and 705 deletions

View file

@ -449,7 +449,7 @@ we then want to impose these on some new symbol:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SymbolAnnotation::copy_set_to_symbol</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">SymbolAnnotation::copy_set_to_symbol</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP5">&#167;5</a><br/>The Property Construct - <a href="4-tpc6.html#SP4">&#167;4</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_annotation_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">set</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SymbolAnnotation::copy_set_to_symbol</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">SymbolAnnotation::copy_set_to_symbol</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP5">&#167;5</a><br/>The Property Construct - <a href="4-tpc6.html#SP4">&#167;4</a><br/>The Variable Construct - <a href="4-tvc.html#SP4">&#167;4</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_annotation_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">set</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</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="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">S</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">annotations</span><span class="plain-syntax">.</span><span class="element-syntax">boolean_annotations</span><span class="plain-syntax"> |= </span><span class="identifier-syntax">set</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">boolean_annotations</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">annotations</span><span class="plain-syntax">.</span><span class="element-syntax">boolean_annotations</span><span class="plain-syntax"> |= </span><span class="identifier-syntax">set</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">boolean_annotations</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">-&gt;</span><span class="element-syntax">other_annotations</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">-&gt;</span><span class="element-syntax">other_annotations</span><span class="plain-syntax">) {</span>
@ -465,7 +465,7 @@ if true, because if false then they are indistinguishable from not being there a
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SymbolAnnotation::write_annotations</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">SymbolAnnotation::write_annotations</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP6">&#167;6</a><br/>The Instance Construct - <a href="4-tic2.html#SP5">&#167;5</a><br/>The Property Construct - <a href="4-tpc6.html#SP5">&#167;5</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SymbolAnnotation::write_annotations</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">SymbolAnnotation::write_annotations</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP6">&#167;6</a><br/>The Instance Construct - <a href="4-tic2.html#SP5">&#167;5</a><br/>The Property Construct - <a href="4-tpc6.html#SP5">&#167;5</a><br/>The Typename Construct - <a href="4-ttc.html#SP5">&#167;5</a><br/>The Variable Construct - <a href="4-tvc.html#SP5">&#167;5</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</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">) </span><a href="2-ann.html#SP14" class="function-link"><span class="function-syntax">SymbolAnnotation::write_set</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, &amp;(</span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">annotations</span><span class="plain-syntax">), </span><span class="identifier-syntax">F</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">) </span><a href="2-ann.html#SP14" class="function-link"><span class="function-syntax">SymbolAnnotation::write_set</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, &amp;(</span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">annotations</span><span class="plain-syntax">), </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>

View file

@ -200,7 +200,7 @@ equal to <span class="extract"><span class="extract-syntax">P</span></span>.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="function-syntax">InterBookmark::package</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">InterBookmark::package</span></span>:<br/><a href="2-bkm.html#SP7">&#167;7</a><br/>Inter Nodes - <a href="2-in.html#SP5">&#167;5</a><br/>The Warehouse - <a href="2-tw.html#SP7">&#167;7</a><br/>Symbols Tables - <a href="2-st.html#SP16">&#167;16</a><br/>Transmigration - <a href="2-trn.html#SP4_1_1">&#167;4.1.1</a>, <a href="2-trn.html#SP4_2_1_1">&#167;4.2.1.1</a><br/>Inter Constructs - <a href="3-ic.html#SP6">&#167;6</a><br/>Inter in Text Files - <a href="3-iitf.html#SP3_2">&#167;3.2</a>, <a href="3-iitf.html#SP12_16">&#167;12.16</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP6">&#167;6</a>, <a href="3-ivp.html#SP8">&#167;8</a>, <a href="3-ivp.html#SP9">&#167;9</a>, <a href="3-ivp.html#SP11">&#167;11</a>, <a href="3-ivp.html#SP13">&#167;13</a>, <a href="3-ivp.html#SP17">&#167;17</a><br/>The Append Construct - <a href="4-tac.html#SP2">&#167;2</a><br/>The Comment Construct - <a href="4-tcc.html#SP2">&#167;2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">&#167;2</a>, <a href="4-tcc2.html#SP3">&#167;3</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">&#167;2</a><br/>The Insert Construct - <a href="4-tic.html#SP2">&#167;2</a><br/>The Instance Construct - <a href="4-tic2.html#SP2">&#167;2</a><br/>The Nop Construct - <a href="4-tnc.html#SP2">&#167;2</a><br/>The Package Construct - <a href="4-tpc.html#SP3">&#167;3</a>, <a href="4-tpc.html#SP4">&#167;4</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">&#167;2</a><br/>The Permission Construct - <a href="4-tpc3.html#SP2">&#167;2</a><br/>The Pragma Construct - <a href="4-tpc4.html#SP2">&#167;2</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP2">&#167;2</a><br/>The Property Construct - <a href="4-tpc6.html#SP2">&#167;2</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP2">&#167;2</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tac.html#SP2">&#167;2</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a><br/>The Code Construct - <a href="5-tcc2.html#SP2">&#167;2</a><br/>The Evaluation Construct - <a href="5-tec.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Reference Construct - <a href="5-trc2.html#SP2">&#167;2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">&#167;1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="function-syntax">InterBookmark::package</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">InterBookmark::package</span></span>:<br/><a href="2-bkm.html#SP7">&#167;7</a><br/>Inter Nodes - <a href="2-in.html#SP5">&#167;5</a><br/>The Warehouse - <a href="2-tw.html#SP7">&#167;7</a><br/>Symbols Tables - <a href="2-st.html#SP16">&#167;16</a><br/>Transmigration - <a href="2-trn.html#SP4_1_1">&#167;4.1.1</a>, <a href="2-trn.html#SP4_2_1_1">&#167;4.2.1.1</a><br/>Inter Constructs - <a href="3-ic.html#SP6">&#167;6</a><br/>Inter in Text Files - <a href="3-iitf.html#SP3_2">&#167;3.2</a>, <a href="3-iitf.html#SP12_16">&#167;12.16</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP6">&#167;6</a>, <a href="3-ivp.html#SP8">&#167;8</a>, <a href="3-ivp.html#SP9">&#167;9</a>, <a href="3-ivp.html#SP11">&#167;11</a>, <a href="3-ivp.html#SP13">&#167;13</a>, <a href="3-ivp.html#SP17">&#167;17</a><br/>The Append Construct - <a href="4-tac.html#SP2">&#167;2</a><br/>The Comment Construct - <a href="4-tcc.html#SP2">&#167;2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">&#167;2</a>, <a href="4-tcc2.html#SP3">&#167;3</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">&#167;2</a><br/>The Insert Construct - <a href="4-tic.html#SP2">&#167;2</a><br/>The Instance Construct - <a href="4-tic2.html#SP2">&#167;2</a><br/>The Nop Construct - <a href="4-tnc.html#SP2">&#167;2</a><br/>The Package Construct - <a href="4-tpc.html#SP3">&#167;3</a>, <a href="4-tpc.html#SP4">&#167;4</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">&#167;2</a><br/>The Permission Construct - <a href="4-tpc3.html#SP2">&#167;2</a><br/>The Pragma Construct - <a href="4-tpc4.html#SP2">&#167;2</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP2">&#167;2</a><br/>The Property Construct - <a href="4-tpc6.html#SP2">&#167;2</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP2">&#167;2</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Assembly Construct - <a href="5-tac.html#SP2">&#167;2</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a><br/>The Code Construct - <a href="5-tcc2.html#SP2">&#167;2</a><br/>The Evaluation Construct - <a href="5-tec.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Reference Construct - <a href="5-trc2.html#SP2">&#167;2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">&#167;1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</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">IBM</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">IBM</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">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">IBM</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">package</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">IBM</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">package</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">IBM</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">placement_wrt_R</span><span class="plain-syntax"> == </span><span class="constant-syntax">AS_FIRST_CHILD_OF_NODEPLACEMENT</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">IBM</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">placement_wrt_R</span><span class="plain-syntax"> == </span><span class="constant-syntax">AS_FIRST_CHILD_OF_NODEPLACEMENT</span><span class="plain-syntax">) ||</span>
@ -230,7 +230,7 @@ equal to <span class="extract"><span class="extract-syntax">P</span></span>.
<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><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> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="function-syntax">InterBookmark::scope</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">InterBookmark::scope</span></span>:<br/>Inter in Text Files - <a href="3-iitf.html#SP5">&#167;5</a>, <a href="3-iitf.html#SP12">&#167;12</a>, <a href="3-iitf.html#SP12_14">&#167;12.14</a><br/>The Append Construct - <a href="4-tac.html#SP4">&#167;4</a><br/>The Constant Construct - <a href="4-tcc2.html#SP5_1">&#167;5.1</a><br/>The Instance Construct - <a href="4-tic2.html#SP4">&#167;4</a><br/>The Package Construct - <a href="4-tpc.html#SP4">&#167;4</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP3">&#167;3</a><br/>The Permission Construct - <a href="4-tpc3.html#SP4">&#167;4</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP4">&#167;4</a><br/>The Property Construct - <a href="4-tpc6.html#SP4">&#167;4</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP4">&#167;4</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">&#167;1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="function-syntax">InterBookmark::scope</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">InterBookmark::scope</span></span>:<br/>Inter in Text Files - <a href="3-iitf.html#SP5">&#167;5</a>, <a href="3-iitf.html#SP12">&#167;12</a>, <a href="3-iitf.html#SP12_14">&#167;12.14</a><br/>The Append Construct - <a href="4-tac.html#SP4">&#167;4</a><br/>The Constant Construct - <a href="4-tcc2.html#SP5_1">&#167;5.1</a><br/>The Instance Construct - <a href="4-tic2.html#SP4">&#167;4</a><br/>The Package Construct - <a href="4-tpc.html#SP4">&#167;4</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP3">&#167;3</a><br/>The Permission Construct - <a href="4-tpc3.html#SP4">&#167;4</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP4">&#167;4</a><br/>The Property Construct - <a href="4-tpc6.html#SP4">&#167;4</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP4">&#167;4</a><br/>The Typename Construct - <a href="4-ttc.html#SP4">&#167;4</a><br/>The Variable Construct - <a href="4-tvc.html#SP4">&#167;4</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">&#167;1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">pack</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-pck.html#SP10" class="function-link"><span class="function-syntax">InterPackage::scope</span></a><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">pack</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-pck.html#SP10" class="function-link"><span class="function-syntax">InterPackage::scope</span></a><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">return</span><span class="plain-syntax"> </span><a href="2-it.html#SP3" class="function-link"><span class="function-syntax">InterTree::global_scope</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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-it.html#SP3" class="function-link"><span class="function-syntax">InterTree::global_scope</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">));</span>

View file

@ -119,7 +119,7 @@ of access matters more.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">warehouse_floor_space</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">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">warehouse_floor_space</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">inter_tree_node</span><span class="plain-syntax">;</span> <span class="plain-syntax">} </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax">;</span>
</pre> </pre>
<ul class="endnotetexts"><li>The structure inter_tree_node is accessed in 2/it, 2/bkm, 2/np, 2/pck, 2/st, 2/sym, 2/trn, 3/ic, 3/iibf, 3/iitf, 3/vi, 3/ivp, 3/idt, 3/mtd, 4/tac, 4/tcc, 4/tcc2, 4/tic, 4/tic2, 4/tpc, 4/tpc3, 4/tpc4, 4/tpc5, 4/tpc6, 4/tpc7, 4/ttc, 5/tac, 5/tcc, 5/tcc2, 5/tec, 5/tic, 5/tlc, 5/tlc2, 5/tlc3, 5/trc2, 5/tsc and here.</li></ul> <ul class="endnotetexts"><li>The structure inter_tree_node is accessed in 2/it, 2/bkm, 2/np, 2/pck, 2/st, 2/sym, 2/trn, 3/ic, 3/iibf, 3/iitf, 3/vi, 3/ivp, 3/idt, 3/mtd, 4/tac, 4/tcc, 4/tcc2, 4/tic, 4/tic2, 4/tpc, 4/tpc3, 4/tpc4, 4/tpc5, 4/tpc6, 4/tpc7, 4/ttc, 4/tvc, 5/tac, 5/tcc, 5/tcc2, 5/tec, 5/tic, 5/tlc, 5/tlc2, 5/tlc3, 5/trc2, 5/tsc and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b>Do not call this directly in order to create a node. <p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b>Do not call this directly in order to create a node.
</p> </p>
@ -204,7 +204,7 @@ call those creator functions, not these.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</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">P</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Inode::new_with_2_data_fields</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">Inode::new_with_2_data_fields</span></span>:<br/>The Append Construct - <a href="4-tac.html#SP2">&#167;2</a><br/>The Pragma Construct - <a href="4-tpc4.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tac.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</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">,</span> <span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Inode::new_with_2_data_fields</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">Inode::new_with_2_data_fields</span></span>:<br/>The Append Construct - <a href="4-tac.html#SP2">&#167;2</a><br/>The Pragma Construct - <a href="4-tpc4.html#SP2">&#167;2</a><br/>The Assembly Construct - <a href="5-tac.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</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">,</span>
<span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">V1</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">V2</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">V1</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">V2</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP2" class="function-link"><span class="function-syntax">Inode::new_node</span></a><span class="plain-syntax">(</span><a href="2-it.html#SP3" class="function-link"><span class="function-syntax">InterTree::warehouse</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="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP2" class="function-link"><span class="function-syntax">Inode::new_node</span></a><span class="plain-syntax">(</span><a href="2-it.html#SP3" class="function-link"><span class="function-syntax">InterTree::warehouse</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="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">,</span>
@ -487,7 +487,7 @@ we are in, which in turn depends on the node).
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-tw.html#SP9" class="function-link"><span class="function-syntax">InterWarehouse::get_package</span></a><span class="plain-syntax">(</span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inode::warehouse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">), </span><span class="identifier-syntax">ID</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-tw.html#SP9" class="function-link"><span class="function-syntax">InterWarehouse::get_package</span></a><span class="plain-syntax">(</span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inode::warehouse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">), </span><span class="identifier-syntax">ID</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_node_list</span><span class="plain-syntax"> *</span><span class="function-syntax">Inode::ID_to_frame_list</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">Inode::ID_to_frame_list</span></span>:<br/>The Instance Construct - <a href="4-tic2.html#SP6">&#167;6</a><br/>The Permission Construct - <a href="4-tpc3.html#SP3">&#167;3</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_node_list</span><span class="plain-syntax"> *</span><span class="function-syntax">Inode::ID_to_frame_list</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">Inode::ID_to_frame_list</span></span>:<br/>The Instance Construct - <a href="4-tic2.html#SP6">&#167;6</a><br/>The Permission Construct - <a href="4-tpc3.html#SP3">&#167;3</a><br/>The Typename Construct - <a href="4-ttc.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="constant-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><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-tw.html#SP10" class="function-link"><span class="function-syntax">InterWarehouse::get_node_list</span></a><span class="plain-syntax">(</span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inode::warehouse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</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">return</span><span class="plain-syntax"> </span><a href="2-tw.html#SP10" class="function-link"><span class="function-syntax">InterWarehouse::get_node_list</span></a><span class="plain-syntax">(</span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inode::warehouse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">), </span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
@ -496,7 +496,7 @@ to identify it as occurring at a particular node. We can get one thus:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">Inode::error</span><button class="popup" onclick="togglePopup('usagePopup26')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup26">Usage of <span class="code-font"><span class="function-syntax">Inode::error</span></span>:<br/>Inter Constructs - <a href="3-ic.html#SP14">&#167;14</a><br/>Verifying Inter - <a href="3-vi.html#SP1_1">&#167;1.1</a>, <a href="3-vi.html#SP1_2">&#167;1.2</a>, <a href="3-vi.html#SP1_2_1">&#167;1.2.1</a>, <a href="3-vi.html#SP1_2_2">&#167;1.2.2</a>, <a href="3-vi.html#SP2">&#167;2</a>, <a href="3-vi.html#SP3">&#167;3</a>, <a href="3-vi.html#SP4">&#167;4</a>, <a href="3-vi.html#SP5">&#167;5</a>, <a href="3-vi.html#SP7">&#167;7</a>, <a href="3-vi.html#SP8">&#167;8</a>, <a href="3-vi.html#SP9">&#167;9</a>, <a href="3-vi.html#SP10">&#167;10</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP24">&#167;24</a>, <a href="3-ivp.html#SP24_1">&#167;24.1</a>, <a href="3-ivp.html#SP24_2">&#167;24.2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP4">&#167;4</a><br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a><br/>The Package Construct - <a href="4-tpc.html#SP5">&#167;5</a><br/>The Permission Construct - <a href="4-tpc3.html#SP3">&#167;3</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP3">&#167;3</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">&#167;3</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tac.html#SP2">&#167;2</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a><br/>The Code Construct - <a href="5-tcc2.html#SP2">&#167;2</a><br/>The Evaluation Construct - <a href="5-tec.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Reference Construct - <a href="5-trc2.html#SP2">&#167;2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">err</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">quote</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">Inode::error</span><button class="popup" onclick="togglePopup('usagePopup26')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup26">Usage of <span class="code-font"><span class="function-syntax">Inode::error</span></span>:<br/>Inter Constructs - <a href="3-ic.html#SP14">&#167;14</a><br/>Verifying Inter - <a href="3-vi.html#SP1_1">&#167;1.1</a>, <a href="3-vi.html#SP1_2">&#167;1.2</a>, <a href="3-vi.html#SP1_2_1">&#167;1.2.1</a>, <a href="3-vi.html#SP1_2_2">&#167;1.2.2</a>, <a href="3-vi.html#SP2">&#167;2</a>, <a href="3-vi.html#SP3">&#167;3</a>, <a href="3-vi.html#SP4">&#167;4</a>, <a href="3-vi.html#SP5">&#167;5</a>, <a href="3-vi.html#SP7">&#167;7</a>, <a href="3-vi.html#SP8">&#167;8</a>, <a href="3-vi.html#SP9">&#167;9</a>, <a href="3-vi.html#SP10">&#167;10</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP24">&#167;24</a>, <a href="3-ivp.html#SP24_1">&#167;24.1</a>, <a href="3-ivp.html#SP24_2">&#167;24.2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP4">&#167;4</a><br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a><br/>The Package Construct - <a href="4-tpc.html#SP5">&#167;5</a><br/>The Permission Construct - <a href="4-tpc3.html#SP3">&#167;3</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP3">&#167;3</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">&#167;3</a><br/>The Typename Construct - <a href="4-ttc.html#SP3">&#167;3</a><br/>The Assembly Construct - <a href="5-tac.html#SP2">&#167;2</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a><br/>The Code Construct - <a href="5-tcc2.html#SP2">&#167;2</a><br/>The Evaluation Construct - <a href="5-tec.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Reference Construct - <a href="5-trc2.html#SP2">&#167;2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">err</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">quote</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iem</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iem</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax"> = </span><a href="2-in.html#SP9" class="function-link"><span class="function-syntax">Inode::get_error_location</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax"> = </span><a href="2-in.html#SP9" class="function-link"><span class="function-syntax">Inode::get_error_location</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</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">eloc</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">eloc</span><span class="plain-syntax">)</span>

View file

@ -307,7 +307,7 @@ way to reach as low as that from <span class="extract"><span class="extract-synt
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">NodePlacement::move_to_moving_bookmark</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">NodePlacement::move_to_moving_bookmark</span></span>:<br/>Transmigration - <a href="2-trn.html#SP3_4">&#167;3.4</a>, <a href="2-trn.html#SP4_1_1">&#167;4.1.1</a>, <a href="2-trn.html#SP4_2_1_1">&#167;4.2.1.1</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_1_5">&#167;9.1.5</a><br/>The Append Construct - <a href="4-tac.html#SP2">&#167;2</a><br/>The Comment Construct - <a href="4-tcc.html#SP2">&#167;2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">&#167;2</a>, <a href="4-tcc2.html#SP3">&#167;3</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">&#167;2</a><br/>The Insert Construct - <a href="4-tic.html#SP2">&#167;2</a><br/>The Instance Construct - <a href="4-tic2.html#SP2">&#167;2</a><br/>The Nop Construct - <a href="4-tnc.html#SP2">&#167;2</a><br/>The Package Construct - <a href="4-tpc.html#SP4">&#167;4</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">&#167;2</a><br/>The Permission Construct - <a href="4-tpc3.html#SP2">&#167;2</a><br/>The Pragma Construct - <a href="4-tpc4.html#SP2">&#167;2</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP2">&#167;2</a><br/>The Property Construct - <a href="4-tpc6.html#SP2">&#167;2</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP2">&#167;2</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tac.html#SP2">&#167;2</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a><br/>The Code Construct - <a href="5-tcc2.html#SP2">&#167;2</a><br/>The Evaluation Construct - <a href="5-tec.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Reference Construct - <a href="5-trc2.html#SP2">&#167;2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">NodePlacement::move_to_moving_bookmark</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">NodePlacement::move_to_moving_bookmark</span></span>:<br/>Transmigration - <a href="2-trn.html#SP3_4">&#167;3.4</a>, <a href="2-trn.html#SP4_1_1">&#167;4.1.1</a>, <a href="2-trn.html#SP4_2_1_1">&#167;4.2.1.1</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_1_5">&#167;9.1.5</a><br/>The Append Construct - <a href="4-tac.html#SP2">&#167;2</a><br/>The Comment Construct - <a href="4-tcc.html#SP2">&#167;2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">&#167;2</a>, <a href="4-tcc2.html#SP3">&#167;3</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">&#167;2</a><br/>The Insert Construct - <a href="4-tic.html#SP2">&#167;2</a><br/>The Instance Construct - <a href="4-tic2.html#SP2">&#167;2</a><br/>The Nop Construct - <a href="4-tnc.html#SP2">&#167;2</a><br/>The Package Construct - <a href="4-tpc.html#SP4">&#167;4</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">&#167;2</a><br/>The Permission Construct - <a href="4-tpc3.html#SP2">&#167;2</a><br/>The Pragma Construct - <a href="4-tpc4.html#SP2">&#167;2</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP2">&#167;2</a><br/>The Property Construct - <a href="4-tpc6.html#SP2">&#167;2</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP2">&#167;2</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Assembly Construct - <a href="5-tac.html#SP2">&#167;2</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a><br/>The Code Construct - <a href="5-tcc2.html#SP2">&#167;2</a><br/>The Evaluation Construct - <a href="5-tec.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Reference Construct - <a href="5-trc2.html#SP2">&#167;2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</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">C</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 node to insert"</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">C</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 node to insert"</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">IBM</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">"nowhere to insert"</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">IBM</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">"nowhere to insert"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-np.html#SP1" class="function-link"><span class="function-syntax">NodePlacement::move_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><a href="2-np.html#SP3" class="function-link"><span class="function-syntax">NodePlacement::to_position</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><a href="2-bkm.html#SP2" class="function-link"><span class="function-syntax">InterBookmark::snapshot</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">)));</span> <span class="plain-syntax"> </span><a href="2-np.html#SP1" class="function-link"><span class="function-syntax">NodePlacement::move_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><a href="2-np.html#SP3" class="function-link"><span class="function-syntax">NodePlacement::to_position</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><a href="2-bkm.html#SP2" class="function-link"><span class="function-syntax">InterBookmark::snapshot</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">)));</span>

View file

@ -244,7 +244,7 @@ extracted from the bytecode of its <span class="extract"><span class="extract-sy
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="function-syntax">InterPackage::scope</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">InterPackage::scope</span></span>:<br/><a href="2-pck.html#SP11">&#167;11</a><br/>Inter Trees - <a href="2-it.html#SP3">&#167;3</a><br/>Bookmarks - <a href="2-bkm.html#SP7">&#167;7</a><br/>Symbols Tables - <a href="2-st.html#SP13">&#167;13</a>, <a href="2-st.html#SP14">&#167;14</a>, <a href="2-st.html#SP15">&#167;15</a>, <a href="2-st.html#SP18">&#167;18</a><br/>The Wiring - <a href="2-tw2.html#SP11">&#167;11</a>, <a href="2-tw2.html#SP12">&#167;12</a>, <a href="2-tw2.html#SP14">&#167;14</a>, <a href="2-tw2.html#SP16">&#167;16</a>, <a href="2-tw2.html#SP17">&#167;17</a><br/>Transmigration - <a href="2-trn.html#SP3_6">&#167;3.6</a>, <a href="2-trn.html#SP4_2_2">&#167;4.2.2</a>, <a href="2-trn.html#SP5">&#167;5</a><br/>Inter Constructs - <a href="3-ic.html#SP7">&#167;7</a><br/>Inter in Text Files - <a href="3-iitf.html#SP7">&#167;7</a><br/>Verifying Inter - <a href="3-vi.html#SP1_2">&#167;1.2</a>, <a href="3-vi.html#SP2">&#167;2</a>, <a href="3-vi.html#SP4">&#167;4</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP13">&#167;13</a>, <a href="3-ivp.html#SP24">&#167;24</a><br/>Inter Data Types - <a href="3-idt.html#SP14">&#167;14</a><br/>Metadata - <a href="3-mtd.html#SP3">&#167;3</a><br/>The Package Construct - <a href="4-tpc.html#SP8">&#167;8</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">&#167;1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="function-syntax">InterPackage::scope</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">InterPackage::scope</span></span>:<br/><a href="2-pck.html#SP11">&#167;11</a><br/>Inter Trees - <a href="2-it.html#SP3">&#167;3</a><br/>Bookmarks - <a href="2-bkm.html#SP7">&#167;7</a><br/>Symbols Tables - <a href="2-st.html#SP13">&#167;13</a>, <a href="2-st.html#SP14">&#167;14</a>, <a href="2-st.html#SP15">&#167;15</a>, <a href="2-st.html#SP18">&#167;18</a><br/>The Wiring - <a href="2-tw2.html#SP11">&#167;11</a>, <a href="2-tw2.html#SP12">&#167;12</a>, <a href="2-tw2.html#SP14">&#167;14</a>, <a href="2-tw2.html#SP16">&#167;16</a>, <a href="2-tw2.html#SP17">&#167;17</a><br/>Transmigration - <a href="2-trn.html#SP3_6">&#167;3.6</a>, <a href="2-trn.html#SP4_2_2">&#167;4.2.2</a>, <a href="2-trn.html#SP5">&#167;5</a><br/>Inter Constructs - <a href="3-ic.html#SP7">&#167;7</a><br/>Inter in Text Files - <a href="3-iitf.html#SP7">&#167;7</a><br/>Verifying Inter - <a href="3-vi.html#SP1_2">&#167;1.2</a>, <a href="3-vi.html#SP2">&#167;2</a>, <a href="3-vi.html#SP4">&#167;4</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP13">&#167;13</a>, <a href="3-ivp.html#SP24">&#167;24</a><br/>Inter Data Types - <a href="3-idt.html#SP14">&#167;14</a><br/>Metadata - <a href="3-mtd.html#SP3">&#167;3</a><br/>The Package Construct - <a href="4-tpc.html#SP8">&#167;8</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">&#167;1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_package</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">pack</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pack</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">pack</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">package_scope</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">pack</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">package_scope</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -282,7 +282,7 @@ equal to the special root package.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">pack</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="function-syntax">InterPackage::scope_of</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">InterPackage::scope_of</span></span>:<br/>Symbols Tables - <a href="2-st.html#SP13">&#167;13</a><br/>Inter in Text Files - <a href="3-iitf.html#SP10">&#167;10</a>, <a href="3-iitf.html#SP12_13">&#167;12.13</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP13">&#167;13</a><br/>The Constant Construct - <a href="4-tcc2.html#SP9">&#167;9</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-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">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="function-syntax">InterPackage::scope_of</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">InterPackage::scope_of</span></span>:<br/>Symbols Tables - <a href="2-st.html#SP13">&#167;13</a><br/>Inter in Text Files - <a href="3-iitf.html#SP10">&#167;10</a>, <a href="3-iitf.html#SP12_13">&#167;12.13</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP13">&#167;13</a><br/>The Constant Construct - <a href="4-tcc2.html#SP9">&#167;9</a><br/>The Typename Construct - <a href="4-ttc.html#SP7">&#167;7</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_tree_node</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">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="2-pck.html#SP12" class="function-link"><span class="function-syntax">InterPackage::container</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">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="2-pck.html#SP12" class="function-link"><span class="function-syntax">InterPackage::container</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">pack</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">pack</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">package_scope</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">pack</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">pack</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">package_scope</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-in.html#SP6" class="function-link"><span class="function-syntax">Inode::globals</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">return</span><span class="plain-syntax"> </span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inode::globals</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>

View file

@ -378,7 +378,7 @@ to access this: one following equations, the other not.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">index</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">T</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">symbol_array</span><span class="plain-syntax">[</span><span class="identifier-syntax">index</span><span class="plain-syntax">];</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">InterSymbolsTable::symbol_from_ID</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">InterSymbolsTable::symbol_from_ID</span></span>:<br/><a href="2-st.html#SP13">&#167;13</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_1_4">&#167;9.1.4</a><br/>Verifying Inter - <a href="3-vi.html#SP2">&#167;2</a>, <a href="3-vi.html#SP3">&#167;3</a>, <a href="3-vi.html#SP4">&#167;4</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP13">&#167;13</a>, <a href="3-ivp.html#SP24_2">&#167;24.2</a><br/>Inter Data Types - <a href="3-idt.html#SP14">&#167;14</a><br/>The Package Construct - <a href="4-tpc.html#SP10">&#167;10</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">ID</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">InterSymbolsTable::symbol_from_ID</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">InterSymbolsTable::symbol_from_ID</span></span>:<br/><a href="2-st.html#SP13">&#167;13</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_1_4">&#167;9.1.4</a><br/>Verifying Inter - <a href="3-vi.html#SP2">&#167;2</a>, <a href="3-vi.html#SP3">&#167;3</a>, <a href="3-vi.html#SP4">&#167;4</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP13">&#167;13</a>, <a href="3-ivp.html#SP24_2">&#167;24.2</a><br/>Inter Data Types - <a href="3-idt.html#SP14">&#167;14</a><br/>The Package Construct - <a href="4-tpc.html#SP10">&#167;10</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">ID</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><a href="2-st.html#SP12" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID_not_following</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">ID</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><a href="2-st.html#SP12" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID_not_following</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">ID</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-tw2.html#SP3" class="function-link"><span class="function-syntax">Wiring::cable_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</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-tw2.html#SP3" class="function-link"><span class="function-syntax">Wiring::cable_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -387,7 +387,7 @@ to access this: one following equations, the other not.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">InterSymbolsTable::symbol_from_ID_at_node</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">InterSymbolsTable::symbol_from_ID_at_node</span></span>:<br/>The Append Construct - <a href="4-tac.html#SP3">&#167;3</a>, <a href="4-tac.html#SP5">&#167;5</a><br/>The Constant Construct - <a href="4-tcc2.html#SP6">&#167;6</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP5">&#167;5</a><br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a>, <a href="4-tic2.html#SP5">&#167;5</a>, <a href="4-tic2.html#SP6">&#167;6</a><br/>The Package Construct - <a href="4-tpc.html#SP9">&#167;9</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP4">&#167;4</a><br/>The Permission Construct - <a href="4-tpc3.html#SP3">&#167;3</a>, <a href="4-tpc3.html#SP4">&#167;4</a>, <a href="4-tpc3.html#SP6">&#167;6</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP5">&#167;5</a>, <a href="4-tpc5.html#SP7">&#167;7</a><br/>The Property Construct - <a href="4-tpc6.html#SP5">&#167;5</a>, <a href="4-tpc6.html#SP6">&#167;6</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP6">&#167;6</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">InterSymbolsTable::symbol_from_ID_at_node</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">InterSymbolsTable::symbol_from_ID_at_node</span></span>:<br/>The Append Construct - <a href="4-tac.html#SP3">&#167;3</a>, <a href="4-tac.html#SP5">&#167;5</a><br/>The Constant Construct - <a href="4-tcc2.html#SP6">&#167;6</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP5">&#167;5</a><br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a>, <a href="4-tic2.html#SP5">&#167;5</a>, <a href="4-tic2.html#SP6">&#167;6</a><br/>The Package Construct - <a href="4-tpc.html#SP9">&#167;9</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP4">&#167;4</a><br/>The Permission Construct - <a href="4-tpc3.html#SP3">&#167;3</a>, <a href="4-tpc3.html#SP4">&#167;4</a>, <a href="4-tpc3.html#SP6">&#167;6</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP5">&#167;5</a>, <a href="4-tpc5.html#SP7">&#167;7</a><br/>The Property Construct - <a href="4-tpc6.html#SP5">&#167;5</a>, <a href="4-tpc6.html#SP6">&#167;6</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP6">&#167;6</a><br/>The Typename Construct - <a href="4-ttc.html#SP6">&#167;6</a><br/>The Variable Construct - <a href="4-tvc.html#SP6">&#167;6</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-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">int</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><a href="2-st.html#SP12" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID</span></a><span class="plain-syntax">(</span><a href="2-pck.html#SP12" class="function-link"><span class="function-syntax">InterPackage::scope_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</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><a href="2-st.html#SP12" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID</span></a><span class="plain-syntax">(</span><a href="2-pck.html#SP12" class="function-link"><span class="function-syntax">InterPackage::scope_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">x</span><span class="plain-syntax">]);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -566,7 +566,7 @@ them on a package-by-package basis, so it is an error to call this function if
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</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">InterSymbolsTable::id_from_symbol_at_bookmark</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP15">&#167;15</a><br/>The Append Construct - <a href="4-tac.html#SP2">&#167;2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">&#167;2</a>, <a href="4-tcc2.html#SP3">&#167;3</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">&#167;2</a><br/>The Instance Construct - <a href="4-tic2.html#SP2">&#167;2</a><br/>The Package Construct - <a href="4-tpc.html#SP4">&#167;4</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">&#167;2</a><br/>The Permission Construct - <a href="4-tpc3.html#SP2">&#167;2</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP2">&#167;2</a><br/>The Property Construct - <a href="4-tpc6.html#SP2">&#167;2</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP2">&#167;2</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">,</span> <span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="function-syntax">InterSymbolsTable::id_at_bookmark</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">InterSymbolsTable::id_at_bookmark</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP15">&#167;15</a><br/>The Append Construct - <a href="4-tac.html#SP2">&#167;2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">&#167;2</a>, <a href="4-tcc2.html#SP3">&#167;3</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">&#167;2</a><br/>The Instance Construct - <a href="4-tic2.html#SP2">&#167;2</a><br/>The Package Construct - <a href="4-tpc.html#SP4">&#167;4</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">&#167;2</a><br/>The Permission Construct - <a href="4-tpc3.html#SP2">&#167;2</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP2">&#167;2</a><br/>The Property Construct - <a href="4-tpc6.html#SP2">&#167;2</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP2">&#167;2</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</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-st.html#SP15" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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-st.html#SP15" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>

View file

@ -401,7 +401,7 @@ might be the node holding the instruction:
<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">) </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::define</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">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">S</span><span class="plain-syntax">) </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::define</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">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="plain-syntax">}</span>
<span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="function-syntax">InterSymbol::definition</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">InterSymbol::definition</span></span>:<br/><a href="2-sym.html#SP16">&#167;16</a>, <a href="2-sym.html#SP17">&#167;17</a><br/>Inter in Text Files - <a href="3-iitf.html#SP5_2">&#167;5.2</a><br/>Verifying Inter - <a href="3-vi.html#SP1_2_1">&#167;1.2.1</a>, <a href="3-vi.html#SP1_2_2">&#167;1.2.2</a>, <a href="3-vi.html#SP2">&#167;2</a>, <a href="3-vi.html#SP3">&#167;3</a>, <a href="3-vi.html#SP4">&#167;4</a><br/>Inter Data Types - <a href="3-idt.html#SP23">&#167;23</a><br/>The Constant Construct - <a href="4-tcc2.html#SP7">&#167;7</a>, <a href="4-tcc2.html#SP8">&#167;8</a>, <a href="4-tcc2.html#SP9">&#167;9</a>, <a href="4-tcc2.html#SP10">&#167;10</a><br/>The Instance Construct - <a href="4-tic2.html#SP6">&#167;6</a><br/>The Package Construct - <a href="4-tpc.html#SP9">&#167;9</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP7">&#167;7</a><br/>The Property Construct - <a href="4-tpc6.html#SP6">&#167;6</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP4">&#167;4</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="function-syntax">InterSymbol::definition</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">InterSymbol::definition</span></span>:<br/><a href="2-sym.html#SP16">&#167;16</a>, <a href="2-sym.html#SP17">&#167;17</a><br/>Inter in Text Files - <a href="3-iitf.html#SP5_2">&#167;5.2</a><br/>Verifying Inter - <a href="3-vi.html#SP1_2_1">&#167;1.2.1</a>, <a href="3-vi.html#SP1_2_2">&#167;1.2.2</a>, <a href="3-vi.html#SP2">&#167;2</a>, <a href="3-vi.html#SP3">&#167;3</a>, <a href="3-vi.html#SP4">&#167;4</a><br/>Inter Data Types - <a href="3-idt.html#SP23">&#167;23</a><br/>The Constant Construct - <a href="4-tcc2.html#SP7">&#167;7</a>, <a href="4-tcc2.html#SP8">&#167;8</a>, <a href="4-tcc2.html#SP9">&#167;9</a>, <a href="4-tcc2.html#SP10">&#167;10</a><br/>The Instance Construct - <a href="4-tic2.html#SP6">&#167;6</a><br/>The Package Construct - <a href="4-tpc.html#SP9">&#167;9</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP7">&#167;7</a><br/>The Property Construct - <a href="4-tpc6.html#SP6">&#167;6</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP4">&#167;4</a><br/>The Typename Construct - <a href="4-ttc.html#SP6">&#167;6</a>, <a href="4-ttc.html#SP7">&#167;7</a>, <a href="4-ttc.html#SP8">&#167;8</a>, <a href="4-ttc.html#SP9">&#167;9</a>, <a href="4-ttc.html#SP10">&#167;10</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</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"> == </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">"tried to find definition of null symbol"</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"> == </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">"tried to find definition of null symbol"</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">S</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">definition</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">S</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">definition</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -467,7 +467,7 @@ in the current package. So:
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. Identifier name. </b></p> <p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. Identifier name. </b></p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">InterSymbol::identifier</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">InterSymbol::identifier</span></span>:<br/><a href="2-sym.html#SP11">&#167;11</a>, <a href="2-sym.html#SP20">&#167;20</a><br/>Packages - <a href="2-pck.html#SP7">&#167;7</a><br/>Symbols Tables - <a href="2-st.html#SP5_2">&#167;5.2</a>, <a href="2-st.html#SP5_3_3">&#167;5.3.3</a>, <a href="2-st.html#SP15_1_2">&#167;15.1.2</a>, <a href="2-st.html#SP17">&#167;17</a><br/>The Wiring - <a href="2-tw2.html#SP5">&#167;5</a>, <a href="2-tw2.html#SP5_1">&#167;5.1</a><br/>Transmigration - <a href="2-trn.html#SP3_6_1">&#167;3.6.1</a>, <a href="2-trn.html#SP4_1">&#167;4.1</a>, <a href="2-trn.html#SP4_1_1">&#167;4.1.1</a>, <a href="2-trn.html#SP4_2_1">&#167;4.2.1</a>, <a href="2-trn.html#SP4_2_1_1">&#167;4.2.1.1</a>, <a href="2-trn.html#SP4_2_2_1">&#167;4.2.2.1</a>, <a href="2-trn.html#SP4_2_2_3">&#167;4.2.2.3</a>, <a href="2-trn.html#SP5_1">&#167;5.1</a><br/>Inter Constructs - <a href="3-ic.html#SP7">&#167;7</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_2_3_2_2">&#167;9.2.3.2.2</a><br/>Inter in Text Files - <a href="3-iitf.html#SP10">&#167;10</a><br/>Verifying Inter - <a href="3-vi.html#SP1_2_1">&#167;1.2.1</a>, <a href="3-vi.html#SP1_2_2">&#167;1.2.2</a>, <a href="3-vi.html#SP2">&#167;2</a>, <a href="3-vi.html#SP3">&#167;3</a>, <a href="3-vi.html#SP4">&#167;4</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP24_2">&#167;24.2</a><br/>The Append Construct - <a href="4-tac.html#SP5">&#167;5</a><br/>The Constant Construct - <a href="4-tcc2.html#SP6">&#167;6</a>, <a href="4-tcc2.html#SP8">&#167;8</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP5">&#167;5</a><br/>The Instance Construct - <a href="4-tic2.html#SP5">&#167;5</a><br/>The Package Construct - <a href="4-tpc.html#SP4">&#167;4</a>, <a href="4-tpc.html#SP5">&#167;5</a>, <a href="4-tpc.html#SP7">&#167;7</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP4">&#167;4</a><br/>The Permission Construct - <a href="4-tpc3.html#SP3">&#167;3</a>, <a href="4-tpc3.html#SP5">&#167;5</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP3">&#167;3</a>, <a href="4-tpc5.html#SP5">&#167;5</a><br/>The Property Construct - <a href="4-tpc6.html#SP5">&#167;5</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">&#167;3</a>, <a href="4-tpc7.html#SP5">&#167;5</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Plug Construct - <a href="6-tpc.html#SP2">&#167;2</a><br/>The Socket Construct - <a href="6-tsc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">InterSymbol::identifier</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">InterSymbol::identifier</span></span>:<br/><a href="2-sym.html#SP11">&#167;11</a>, <a href="2-sym.html#SP20">&#167;20</a><br/>Packages - <a href="2-pck.html#SP7">&#167;7</a><br/>Symbols Tables - <a href="2-st.html#SP5_2">&#167;5.2</a>, <a href="2-st.html#SP5_3_3">&#167;5.3.3</a>, <a href="2-st.html#SP15_1_2">&#167;15.1.2</a>, <a href="2-st.html#SP17">&#167;17</a><br/>The Wiring - <a href="2-tw2.html#SP5">&#167;5</a>, <a href="2-tw2.html#SP5_1">&#167;5.1</a><br/>Transmigration - <a href="2-trn.html#SP3_6_1">&#167;3.6.1</a>, <a href="2-trn.html#SP4_1">&#167;4.1</a>, <a href="2-trn.html#SP4_1_1">&#167;4.1.1</a>, <a href="2-trn.html#SP4_2_1">&#167;4.2.1</a>, <a href="2-trn.html#SP4_2_1_1">&#167;4.2.1.1</a>, <a href="2-trn.html#SP4_2_2_1">&#167;4.2.2.1</a>, <a href="2-trn.html#SP4_2_2_3">&#167;4.2.2.3</a>, <a href="2-trn.html#SP5_1">&#167;5.1</a><br/>Inter Constructs - <a href="3-ic.html#SP7">&#167;7</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_2_3_2_2">&#167;9.2.3.2.2</a><br/>Inter in Text Files - <a href="3-iitf.html#SP10">&#167;10</a><br/>Verifying Inter - <a href="3-vi.html#SP1_2_1">&#167;1.2.1</a>, <a href="3-vi.html#SP1_2_2">&#167;1.2.2</a>, <a href="3-vi.html#SP2">&#167;2</a>, <a href="3-vi.html#SP3">&#167;3</a>, <a href="3-vi.html#SP4">&#167;4</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP24_2">&#167;24.2</a><br/>The Append Construct - <a href="4-tac.html#SP5">&#167;5</a><br/>The Constant Construct - <a href="4-tcc2.html#SP6">&#167;6</a>, <a href="4-tcc2.html#SP8">&#167;8</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP5">&#167;5</a><br/>The Instance Construct - <a href="4-tic2.html#SP5">&#167;5</a><br/>The Package Construct - <a href="4-tpc.html#SP4">&#167;4</a>, <a href="4-tpc.html#SP5">&#167;5</a>, <a href="4-tpc.html#SP7">&#167;7</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP4">&#167;4</a><br/>The Permission Construct - <a href="4-tpc3.html#SP3">&#167;3</a>, <a href="4-tpc3.html#SP5">&#167;5</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP3">&#167;3</a>, <a href="4-tpc5.html#SP5">&#167;5</a><br/>The Property Construct - <a href="4-tpc6.html#SP5">&#167;5</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">&#167;3</a>, <a href="4-tpc7.html#SP5">&#167;5</a><br/>The Typename Construct - <a href="4-ttc.html#SP5">&#167;5</a><br/>The Variable Construct - <a href="4-tvc.html#SP5">&#167;5</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Plug Construct - <a href="6-tpc.html#SP2">&#167;2</a><br/>The Socket Construct - <a href="6-tsc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</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"> == </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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">S</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">S</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">identifier</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">S</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">identifier</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>

View file

@ -424,7 +424,7 @@ in order to cache the results of those two calculations.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">extent</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">extent</span><span class="plain-syntax">;</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">warehouse_floor_space</span><span class="plain-syntax">;</span> <span class="plain-syntax">} </span><span class="reserved-syntax">warehouse_floor_space</span><span class="plain-syntax">;</span>
</pre> </pre>
<ul class="endnotetexts"><li>The structure warehouse_floor_space is accessed in 2/it, 2/in, 2/bkm, 2/np, 2/pck, 2/st, 2/sym, 2/ann, 2/trn, 3/ic, 3/iibf, 3/iitf, 3/vi, 3/ivp, 3/idt, 3/mtd, 4/tac, 4/tcc, 4/tcc2, 4/tic, 4/tic2, 4/tpc, 4/tpc3, 4/tpc4, 4/tpc5, 4/tpc6, 4/tpc7, 4/ttc, 5/tac, 5/tcc, 5/tcc2, 5/tec, 5/tic, 5/tlc, 5/tlc2, 5/tlc3, 5/trc2, 5/tsc and here.</li></ul> <ul class="endnotetexts"><li>The structure warehouse_floor_space is accessed in 2/it, 2/in, 2/bkm, 2/np, 2/pck, 2/st, 2/sym, 2/ann, 2/trn, 3/ic, 3/iibf, 3/iitf, 3/vi, 3/ivp, 3/idt, 3/mtd, 4/tac, 4/tcc, 4/tcc2, 4/tic, 4/tic2, 4/tpc, 4/tpc3, 4/tpc4, 4/tpc5, 4/tpc6, 4/tpc7, 4/ttc, 4/tvc, 5/tac, 5/tcc, 5/tcc2, 5/tec, 5/tic, 5/tlc, 5/tlc2, 5/tlc3, 5/trc2, 5/tsc and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. </b>We provide an API of just two functions to handle all this. Firstly, <p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. </b>We provide an API of just two functions to handle all this. Firstly,
<a href="2-tw.html#SP15" class="internal">InterWarehouse::make_floor_space</a> makes room for an instruction of <span class="extract"><span class="extract-syntax">n</span></span> words. <a href="2-tw.html#SP15" class="internal">InterWarehouse::make_floor_space</a> makes room for an instruction of <span class="extract"><span class="extract-syntax">n</span></span> words.
(This is the frame extent, and does not include the <span class="extract"><span class="extract-syntax">PREFRAME_SIZE</span></span>.) (This is the frame extent, and does not include the <span class="extract"><span class="extract-syntax">PREFRAME_SIZE</span></span>.)

View file

@ -98,7 +98,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span> <span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax">;</span> <span class="plain-syntax">} </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="function-syntax">InterInstruction::create_construct</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">InterInstruction::create_construct</span></span>:<br/><a href="3-ic.html#SP9">&#167;9</a><br/>The Append Construct - <a href="4-tac.html#SP1">&#167;1</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">&#167;1</a><br/>The Constant Construct - <a href="4-tcc2.html#SP1">&#167;1</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP1">&#167;1</a><br/>The Insert Construct - <a href="4-tic.html#SP1">&#167;1</a><br/>The Instance Construct - <a href="4-tic2.html#SP1">&#167;1</a><br/>The Nop Construct - <a href="4-tnc.html#SP1">&#167;1</a><br/>The Package Construct - <a href="4-tpc.html#SP1">&#167;1</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP1">&#167;1</a><br/>The Permission Construct - <a href="4-tpc3.html#SP1">&#167;1</a><br/>The Pragma Construct - <a href="4-tpc4.html#SP1">&#167;1</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP1">&#167;1</a><br/>The Property Construct - <a href="4-tpc6.html#SP1">&#167;1</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP1">&#167;1</a><br/>The Typename Construct - <a href="4-ttc.html#SP1">&#167;1</a><br/>The Variable Construct - <a href="4-tvc.html#SP1">&#167;1</a><br/>The Lab Construct - <a href="5-tac.html#SP1">&#167;1</a><br/>The Cast Construct - <a href="5-tcc.html#SP1">&#167;1</a><br/>The Code Construct - <a href="5-tcc2.html#SP1">&#167;1</a><br/>The Evaluation Construct - <a href="5-tec.html#SP1">&#167;1</a><br/>The Inv Construct - <a href="5-tic.html#SP1">&#167;1</a><br/>The Lab Construct - <a href="5-tlc.html#SP1">&#167;1</a><br/>The Label Construct - <a href="5-tlc2.html#SP1">&#167;1</a><br/>The Local Construct - <a href="5-tlc3.html#SP1">&#167;1</a><br/>The Ref Construct - <a href="5-trc.html#SP1">&#167;1</a><br/>The Reference Construct - <a href="5-trc2.html#SP1">&#167;1</a><br/>The Splat Construct - <a href="5-tsc.html#SP1">&#167;1</a><br/>The Val Construct - <a href="5-tvc.html#SP1">&#167;1</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">&#167;1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">&#167;1</a><br/>The Version Construct - <a href="6-tvc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">ID</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="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="function-syntax">InterInstruction::create_construct</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">InterInstruction::create_construct</span></span>:<br/><a href="3-ic.html#SP9">&#167;9</a><br/>The Append Construct - <a href="4-tac.html#SP1">&#167;1</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">&#167;1</a><br/>The Constant Construct - <a href="4-tcc2.html#SP1">&#167;1</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP1">&#167;1</a><br/>The Insert Construct - <a href="4-tic.html#SP1">&#167;1</a><br/>The Instance Construct - <a href="4-tic2.html#SP1">&#167;1</a><br/>The Nop Construct - <a href="4-tnc.html#SP1">&#167;1</a><br/>The Package Construct - <a href="4-tpc.html#SP1">&#167;1</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP1">&#167;1</a><br/>The Permission Construct - <a href="4-tpc3.html#SP1">&#167;1</a><br/>The Pragma Construct - <a href="4-tpc4.html#SP1">&#167;1</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP1">&#167;1</a><br/>The Property Construct - <a href="4-tpc6.html#SP1">&#167;1</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP1">&#167;1</a><br/>The Typename Construct - <a href="4-ttc.html#SP1">&#167;1</a><br/>The Variable Construct - <a href="4-tvc.html#SP1">&#167;1</a><br/>The Assembly Construct - <a href="5-tac.html#SP1">&#167;1</a><br/>The Cast Construct - <a href="5-tcc.html#SP1">&#167;1</a><br/>The Code Construct - <a href="5-tcc2.html#SP1">&#167;1</a><br/>The Evaluation Construct - <a href="5-tec.html#SP1">&#167;1</a><br/>The Inv Construct - <a href="5-tic.html#SP1">&#167;1</a><br/>The Lab Construct - <a href="5-tlc.html#SP1">&#167;1</a><br/>The Label Construct - <a href="5-tlc2.html#SP1">&#167;1</a><br/>The Local Construct - <a href="5-tlc3.html#SP1">&#167;1</a><br/>The Ref Construct - <a href="5-trc.html#SP1">&#167;1</a><br/>The Reference Construct - <a href="5-trc2.html#SP1">&#167;1</a><br/>The Splat Construct - <a href="5-tsc.html#SP1">&#167;1</a><br/>The Val Construct - <a href="5-tvc.html#SP1">&#167;1</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">&#167;1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">&#167;1</a><br/>The Version Construct - <a href="6-tvc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">ID</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="plain-syntax"> </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct_ID</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">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct_ID</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">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</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">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">construct_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
@ -151,11 +151,11 @@ Those must be explicitly granted when a new construct is created.
<span class="definition-keyword">define</span> <span class="constant-syntax">CAN_HAVE_ANNOTATIONS_ICUP</span><span class="plain-syntax"> </span><span class="constant-syntax">16</span> <span class="definition-keyword">define</span> <span class="constant-syntax">CAN_HAVE_ANNOTATIONS_ICUP</span><span class="plain-syntax"> </span><span class="constant-syntax">16</span>
</pre> </pre>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterInstruction::permit</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">InterInstruction::permit</span></span>:<br/>The Append Construct - <a href="4-tac.html#SP1">&#167;1</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">&#167;1</a><br/>The Constant Construct - <a href="4-tcc2.html#SP1">&#167;1</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP1">&#167;1</a><br/>The Insert Construct - <a href="4-tic.html#SP1">&#167;1</a><br/>The Instance Construct - <a href="4-tic2.html#SP1">&#167;1</a><br/>The Nop Construct - <a href="4-tnc.html#SP1">&#167;1</a><br/>The Package Construct - <a href="4-tpc.html#SP1">&#167;1</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP1">&#167;1</a><br/>The Permission Construct - <a href="4-tpc3.html#SP1">&#167;1</a><br/>The Pragma Construct - <a href="4-tpc4.html#SP1">&#167;1</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP1">&#167;1</a><br/>The Property Construct - <a href="4-tpc6.html#SP1">&#167;1</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP1">&#167;1</a><br/>The Typename Construct - <a href="4-ttc.html#SP1">&#167;1</a><br/>The Variable Construct - <a href="4-tvc.html#SP1">&#167;1</a><br/>The Lab Construct - <a href="5-tac.html#SP1">&#167;1</a><br/>The Cast Construct - <a href="5-tcc.html#SP1">&#167;1</a><br/>The Code Construct - <a href="5-tcc2.html#SP1">&#167;1</a><br/>The Evaluation Construct - <a href="5-tec.html#SP1">&#167;1</a><br/>The Inv Construct - <a href="5-tic.html#SP1">&#167;1</a><br/>The Lab Construct - <a href="5-tlc.html#SP1">&#167;1</a><br/>The Label Construct - <a href="5-tlc2.html#SP1">&#167;1</a><br/>The Local Construct - <a href="5-tlc3.html#SP1">&#167;1</a><br/>The Ref Construct - <a href="5-trc.html#SP1">&#167;1</a><br/>The Reference Construct - <a href="5-trc2.html#SP1">&#167;1</a><br/>The Splat Construct - <a href="5-tsc.html#SP1">&#167;1</a><br/>The Val Construct - <a href="5-tvc.html#SP1">&#167;1</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">&#167;1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">&#167;1</a><br/>The Version Construct - <a href="6-tvc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">usage</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterInstruction::permit</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">InterInstruction::permit</span></span>:<br/>The Append Construct - <a href="4-tac.html#SP1">&#167;1</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">&#167;1</a><br/>The Constant Construct - <a href="4-tcc2.html#SP1">&#167;1</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP1">&#167;1</a><br/>The Insert Construct - <a href="4-tic.html#SP1">&#167;1</a><br/>The Instance Construct - <a href="4-tic2.html#SP1">&#167;1</a><br/>The Nop Construct - <a href="4-tnc.html#SP1">&#167;1</a><br/>The Package Construct - <a href="4-tpc.html#SP1">&#167;1</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP1">&#167;1</a><br/>The Permission Construct - <a href="4-tpc3.html#SP1">&#167;1</a><br/>The Pragma Construct - <a href="4-tpc4.html#SP1">&#167;1</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP1">&#167;1</a><br/>The Property Construct - <a href="4-tpc6.html#SP1">&#167;1</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP1">&#167;1</a><br/>The Typename Construct - <a href="4-ttc.html#SP1">&#167;1</a><br/>The Variable Construct - <a href="4-tvc.html#SP1">&#167;1</a><br/>The Assembly Construct - <a href="5-tac.html#SP1">&#167;1</a><br/>The Cast Construct - <a href="5-tcc.html#SP1">&#167;1</a><br/>The Code Construct - <a href="5-tcc2.html#SP1">&#167;1</a><br/>The Evaluation Construct - <a href="5-tec.html#SP1">&#167;1</a><br/>The Inv Construct - <a href="5-tic.html#SP1">&#167;1</a><br/>The Lab Construct - <a href="5-tlc.html#SP1">&#167;1</a><br/>The Label Construct - <a href="5-tlc2.html#SP1">&#167;1</a><br/>The Local Construct - <a href="5-tlc3.html#SP1">&#167;1</a><br/>The Ref Construct - <a href="5-trc.html#SP1">&#167;1</a><br/>The Reference Construct - <a href="5-trc2.html#SP1">&#167;1</a><br/>The Splat Construct - <a href="5-tsc.html#SP1">&#167;1</a><br/>The Val Construct - <a href="5-tvc.html#SP1">&#167;1</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">&#167;1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">&#167;1</a><br/>The Version Construct - <a href="6-tvc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">usage</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">usage_permissions</span><span class="plain-syntax"> |= </span><span class="identifier-syntax">usage</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">usage_permissions</span><span class="plain-syntax"> |= </span><span class="identifier-syntax">usage</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">InterInstruction::allow_in_depth_range</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">InterInstruction::allow_in_depth_range</span></span>:<br/><a href="3-ic.html#SP9">&#167;9</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">&#167;1</a><br/>The Nop Construct - <a href="4-tnc.html#SP1">&#167;1</a><br/>The Lab Construct - <a href="5-tac.html#SP1">&#167;1</a><br/>The Cast Construct - <a href="5-tcc.html#SP1">&#167;1</a><br/>The Code Construct - <a href="5-tcc2.html#SP1">&#167;1</a><br/>The Evaluation Construct - <a href="5-tec.html#SP1">&#167;1</a><br/>The Inv Construct - <a href="5-tic.html#SP1">&#167;1</a><br/>The Lab Construct - <a href="5-tlc.html#SP1">&#167;1</a><br/>The Label Construct - <a href="5-tlc2.html#SP1">&#167;1</a><br/>The Ref Construct - <a href="5-trc.html#SP1">&#167;1</a><br/>The Reference Construct - <a href="5-trc2.html#SP1">&#167;1</a><br/>The Splat Construct - <a href="5-tsc.html#SP1">&#167;1</a><br/>The Val Construct - <a href="5-tvc.html#SP1">&#167;1</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">&#167;1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">l1</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">l2</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterInstruction::allow_in_depth_range</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">InterInstruction::allow_in_depth_range</span></span>:<br/><a href="3-ic.html#SP9">&#167;9</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">&#167;1</a><br/>The Nop Construct - <a href="4-tnc.html#SP1">&#167;1</a><br/>The Assembly Construct - <a href="5-tac.html#SP1">&#167;1</a><br/>The Cast Construct - <a href="5-tcc.html#SP1">&#167;1</a><br/>The Code Construct - <a href="5-tcc2.html#SP1">&#167;1</a><br/>The Evaluation Construct - <a href="5-tec.html#SP1">&#167;1</a><br/>The Inv Construct - <a href="5-tic.html#SP1">&#167;1</a><br/>The Lab Construct - <a href="5-tlc.html#SP1">&#167;1</a><br/>The Label Construct - <a href="5-tlc2.html#SP1">&#167;1</a><br/>The Ref Construct - <a href="5-trc.html#SP1">&#167;1</a><br/>The Reference Construct - <a href="5-trc2.html#SP1">&#167;1</a><br/>The Splat Construct - <a href="5-tsc.html#SP1">&#167;1</a><br/>The Val Construct - <a href="5-tvc.html#SP1">&#167;1</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">&#167;1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">l1</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">l2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">min_level</span><span class="plain-syntax"> = </span><span class="identifier-syntax">l1</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">min_level</span><span class="plain-syntax"> = </span><span class="identifier-syntax">l1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">max_level</span><span class="plain-syntax"> = </span><span class="identifier-syntax">l2</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">max_level</span><span class="plain-syntax"> = </span><span class="identifier-syntax">l2</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -167,7 +167,7 @@ number of words of bytecode it occupies:
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">UNLIMITED_INSTRUCTION_FRAME_LENGTH</span><span class="plain-syntax"> </span><span class="constant-syntax">0x7fffffff</span> <pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">UNLIMITED_INSTRUCTION_FRAME_LENGTH</span><span class="plain-syntax"> </span><span class="constant-syntax">0x7fffffff</span>
</pre> </pre>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterInstruction::fix_instruction_length_between</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">InterInstruction::fix_instruction_length_between</span></span>:<br/>The Append Construct - <a href="4-tac.html#SP1">&#167;1</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">&#167;1</a><br/>The Constant Construct - <a href="4-tcc2.html#SP1">&#167;1</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP1">&#167;1</a><br/>The Insert Construct - <a href="4-tic.html#SP1">&#167;1</a><br/>The Instance Construct - <a href="4-tic2.html#SP1">&#167;1</a><br/>The Nop Construct - <a href="4-tnc.html#SP1">&#167;1</a><br/>The Package Construct - <a href="4-tpc.html#SP1">&#167;1</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP1">&#167;1</a><br/>The Permission Construct - <a href="4-tpc3.html#SP1">&#167;1</a><br/>The Pragma Construct - <a href="4-tpc4.html#SP1">&#167;1</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP1">&#167;1</a><br/>The Property Construct - <a href="4-tpc6.html#SP1">&#167;1</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP1">&#167;1</a><br/>The Typename Construct - <a href="4-ttc.html#SP1">&#167;1</a><br/>The Variable Construct - <a href="4-tvc.html#SP1">&#167;1</a><br/>The Lab Construct - <a href="5-tac.html#SP1">&#167;1</a><br/>The Cast Construct - <a href="5-tcc.html#SP1">&#167;1</a><br/>The Code Construct - <a href="5-tcc2.html#SP1">&#167;1</a><br/>The Evaluation Construct - <a href="5-tec.html#SP1">&#167;1</a><br/>The Inv Construct - <a href="5-tic.html#SP1">&#167;1</a><br/>The Lab Construct - <a href="5-tlc.html#SP1">&#167;1</a><br/>The Label Construct - <a href="5-tlc2.html#SP1">&#167;1</a><br/>The Local Construct - <a href="5-tlc3.html#SP1">&#167;1</a><br/>The Ref Construct - <a href="5-trc.html#SP1">&#167;1</a><br/>The Reference Construct - <a href="5-trc2.html#SP1">&#167;1</a><br/>The Splat Construct - <a href="5-tsc.html#SP1">&#167;1</a><br/>The Val Construct - <a href="5-tvc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">l1</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">l2</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterInstruction::fix_instruction_length_between</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">InterInstruction::fix_instruction_length_between</span></span>:<br/>The Append Construct - <a href="4-tac.html#SP1">&#167;1</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">&#167;1</a><br/>The Constant Construct - <a href="4-tcc2.html#SP1">&#167;1</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP1">&#167;1</a><br/>The Insert Construct - <a href="4-tic.html#SP1">&#167;1</a><br/>The Instance Construct - <a href="4-tic2.html#SP1">&#167;1</a><br/>The Nop Construct - <a href="4-tnc.html#SP1">&#167;1</a><br/>The Package Construct - <a href="4-tpc.html#SP1">&#167;1</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP1">&#167;1</a><br/>The Permission Construct - <a href="4-tpc3.html#SP1">&#167;1</a><br/>The Pragma Construct - <a href="4-tpc4.html#SP1">&#167;1</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP1">&#167;1</a><br/>The Property Construct - <a href="4-tpc6.html#SP1">&#167;1</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP1">&#167;1</a><br/>The Typename Construct - <a href="4-ttc.html#SP1">&#167;1</a><br/>The Variable Construct - <a href="4-tvc.html#SP1">&#167;1</a><br/>The Assembly Construct - <a href="5-tac.html#SP1">&#167;1</a><br/>The Cast Construct - <a href="5-tcc.html#SP1">&#167;1</a><br/>The Code Construct - <a href="5-tcc2.html#SP1">&#167;1</a><br/>The Evaluation Construct - <a href="5-tec.html#SP1">&#167;1</a><br/>The Inv Construct - <a href="5-tic.html#SP1">&#167;1</a><br/>The Lab Construct - <a href="5-tlc.html#SP1">&#167;1</a><br/>The Label Construct - <a href="5-tlc2.html#SP1">&#167;1</a><br/>The Local Construct - <a href="5-tlc3.html#SP1">&#167;1</a><br/>The Ref Construct - <a href="5-trc.html#SP1">&#167;1</a><br/>The Reference Construct - <a href="5-trc2.html#SP1">&#167;1</a><br/>The Splat Construct - <a href="5-tsc.html#SP1">&#167;1</a><br/>The Val Construct - <a href="5-tvc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">l1</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">l2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">min_extent</span><span class="plain-syntax"> = </span><span class="identifier-syntax">l1</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">min_extent</span><span class="plain-syntax"> = </span><span class="identifier-syntax">l1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">max_extent</span><span class="plain-syntax"> = </span><span class="identifier-syntax">l2</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">max_extent</span><span class="plain-syntax"> = </span><span class="identifier-syntax">l2</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -314,7 +314,7 @@ but give it no syntax. If so, it will be inexpressible in textual Inter code.
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">MAX_RECOGNITION_REGEXP_LENGTH</span><span class="plain-syntax"> </span><span class="constant-syntax">64</span> <pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">MAX_RECOGNITION_REGEXP_LENGTH</span><span class="plain-syntax"> </span><span class="constant-syntax">64</span>
</pre> </pre>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterInstruction::specify_syntax</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">InterInstruction::specify_syntax</span></span>:<br/>The Append Construct - <a href="4-tac.html#SP1">&#167;1</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">&#167;1</a><br/>The Constant Construct - <a href="4-tcc2.html#SP1">&#167;1</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP1">&#167;1</a><br/>The Insert Construct - <a href="4-tic.html#SP1">&#167;1</a><br/>The Instance Construct - <a href="4-tic2.html#SP1">&#167;1</a><br/>The Package Construct - <a href="4-tpc.html#SP1">&#167;1</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP1">&#167;1</a><br/>The Permission Construct - <a href="4-tpc3.html#SP1">&#167;1</a><br/>The Pragma Construct - <a href="4-tpc4.html#SP1">&#167;1</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP1">&#167;1</a><br/>The Property Construct - <a href="4-tpc6.html#SP1">&#167;1</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP1">&#167;1</a><br/>The Typename Construct - <a href="4-ttc.html#SP1">&#167;1</a><br/>The Variable Construct - <a href="4-tvc.html#SP1">&#167;1</a><br/>The Lab Construct - <a href="5-tac.html#SP1">&#167;1</a><br/>The Cast Construct - <a href="5-tcc.html#SP1">&#167;1</a><br/>The Code Construct - <a href="5-tcc2.html#SP1">&#167;1</a><br/>The Evaluation Construct - <a href="5-tec.html#SP1">&#167;1</a><br/>The Inv Construct - <a href="5-tic.html#SP1">&#167;1</a><br/>The Lab Construct - <a href="5-tlc.html#SP1">&#167;1</a><br/>The Label Construct - <a href="5-tlc2.html#SP1">&#167;1</a><br/>The Local Construct - <a href="5-tlc3.html#SP1">&#167;1</a><br/>The Ref Construct - <a href="5-trc.html#SP1">&#167;1</a><br/>The Reference Construct - <a href="5-trc2.html#SP1">&#167;1</a><br/>The Splat Construct - <a href="5-tsc.html#SP1">&#167;1</a><br/>The Val Construct - <a href="5-tvc.html#SP1">&#167;1</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">&#167;1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">&#167;1</a><br/>The Version Construct - <a href="6-tvc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">syntax</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterInstruction::specify_syntax</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">InterInstruction::specify_syntax</span></span>:<br/>The Append Construct - <a href="4-tac.html#SP1">&#167;1</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">&#167;1</a><br/>The Constant Construct - <a href="4-tcc2.html#SP1">&#167;1</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP1">&#167;1</a><br/>The Insert Construct - <a href="4-tic.html#SP1">&#167;1</a><br/>The Instance Construct - <a href="4-tic2.html#SP1">&#167;1</a><br/>The Package Construct - <a href="4-tpc.html#SP1">&#167;1</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP1">&#167;1</a><br/>The Permission Construct - <a href="4-tpc3.html#SP1">&#167;1</a><br/>The Pragma Construct - <a href="4-tpc4.html#SP1">&#167;1</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP1">&#167;1</a><br/>The Property Construct - <a href="4-tpc6.html#SP1">&#167;1</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP1">&#167;1</a><br/>The Typename Construct - <a href="4-ttc.html#SP1">&#167;1</a><br/>The Variable Construct - <a href="4-tvc.html#SP1">&#167;1</a><br/>The Assembly Construct - <a href="5-tac.html#SP1">&#167;1</a><br/>The Cast Construct - <a href="5-tcc.html#SP1">&#167;1</a><br/>The Code Construct - <a href="5-tcc2.html#SP1">&#167;1</a><br/>The Evaluation Construct - <a href="5-tec.html#SP1">&#167;1</a><br/>The Inv Construct - <a href="5-tic.html#SP1">&#167;1</a><br/>The Lab Construct - <a href="5-tlc.html#SP1">&#167;1</a><br/>The Label Construct - <a href="5-tlc2.html#SP1">&#167;1</a><br/>The Local Construct - <a href="5-tlc3.html#SP1">&#167;1</a><br/>The Ref Construct - <a href="5-trc.html#SP1">&#167;1</a><br/>The Reference Construct - <a href="5-trc2.html#SP1">&#167;1</a><br/>The Splat Construct - <a href="5-tsc.html#SP1">&#167;1</a><br/>The Val Construct - <a href="5-tvc.html#SP1">&#167;1</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">&#167;1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">&#167;1</a><br/>The Version Construct - <a href="6-tvc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">syntax</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">syntax</span><span class="plain-syntax"> = </span><span class="identifier-syntax">syntax</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">IC</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">syntax</span><span class="plain-syntax"> = </span><span class="identifier-syntax">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">regexp</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">regexp</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"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">syntax</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"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">syntax</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>

View file

@ -118,7 +118,7 @@ invalidate existing Inter binary files, necessitating a bump of <a href="1-tiv.h
<span class="definition-keyword">define</span> <span class="constant-syntax">MIN_INTER_TYPE_CONSTRUCTOR</span><span class="plain-syntax"> </span><span class="constant-syntax">UNCHECKED_ITCONC</span> <span class="definition-keyword">define</span> <span class="constant-syntax">MIN_INTER_TYPE_CONSTRUCTOR</span><span class="plain-syntax"> </span><span class="constant-syntax">UNCHECKED_ITCONC</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">MAX_INTER_TYPE_CONSTRUCTOR</span><span class="plain-syntax"> </span><span class="constant-syntax">VOID_ITCONC</span> <span class="definition-keyword">define</span> <span class="constant-syntax">MAX_INTER_TYPE_CONSTRUCTOR</span><span class="plain-syntax"> </span><span class="constant-syntax">VOID_ITCONC</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::is_valid_constructor_code</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">InterTypes::is_valid_constructor_code</span></span>:<br/><a href="3-idt.html#SP5">&#167;5</a>, <a href="3-idt.html#SP6">&#167;6</a>, <a href="3-idt.html#SP10">&#167;10</a>, <a href="3-idt.html#SP14">&#167;14</a><br/>Verifying Inter - <a href="3-vi.html#SP5">&#167;5</a>, <a href="3-vi.html#SP6">&#167;6</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">constructor</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::is_valid_constructor_code</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">InterTypes::is_valid_constructor_code</span></span>:<br/><a href="3-idt.html#SP5">&#167;5</a>, <a href="3-idt.html#SP6">&#167;6</a>, <a href="3-idt.html#SP10">&#167;10</a>, <a href="3-idt.html#SP14">&#167;14</a><br/>Verifying Inter - <a href="3-vi.html#SP5">&#167;5</a>, <a href="3-vi.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">constructor</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">constructor</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">MIN_INTER_TYPE_CONSTRUCTOR</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">constructor</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">MIN_INTER_TYPE_CONSTRUCTOR</span><span class="plain-syntax">) ||</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">constructor</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">MAX_INTER_TYPE_CONSTRUCTOR</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">constructor</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">MAX_INTER_TYPE_CONSTRUCTOR</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">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">TRUE</span><span class="plain-syntax">;</span>
@ -278,7 +278,7 @@ type name, and so can be stored in an <a href="3-idt.html#SP9" class="internal">
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::from_constructor_code</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">InterTypes::from_constructor_code</span></span>:<br/><a href="3-idt.html#SP12">&#167;12</a>, <a href="3-idt.html#SP14">&#167;14</a>, <a href="3-idt.html#SP17_6">&#167;17.6</a>, <a href="3-idt.html#SP18">&#167;18</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">constructor_code</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::from_constructor_code</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">InterTypes::from_constructor_code</span></span>:<br/><a href="3-idt.html#SP12">&#167;12</a>, <a href="3-idt.html#SP14">&#167;14</a>, <a href="3-idt.html#SP17_6">&#167;17.6</a>, <a href="3-idt.html#SP18">&#167;18</a><br/>The Typename Construct - <a href="4-ttc.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">constructor_code</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-idt.html#SP2" class="function-link"><span class="function-syntax">InterTypes::is_valid_constructor_code</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">constructor_code</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><a href="3-idt.html#SP2" class="function-link"><span class="function-syntax">InterTypes::is_valid_constructor_code</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">constructor_code</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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"invalid constructor code"</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">"invalid constructor code"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">;</span>
@ -287,10 +287,10 @@ type name, and so can be stored in an <a href="3-idt.html#SP9" class="internal">
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</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">type</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::from_type_name</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">InterTypes::from_type_name</span></span>:<br/><a href="3-idt.html#SP14">&#167;14</a>, <a href="3-idt.html#SP17_9">&#167;17.9</a>, <a href="3-idt.html#SP19">&#167;19</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP4">&#167;4</a><br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a>, <a href="4-tic2.html#SP4">&#167;4</a><br/>The Permission Construct - <a href="4-tpc3.html#SP3">&#167;3</a>, <a href="4-tpc3.html#SP4">&#167;4</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::from_type_name</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">InterTypes::from_type_name</span></span>:<br/><a href="3-idt.html#SP14">&#167;14</a>, <a href="3-idt.html#SP17_9">&#167;17.9</a>, <a href="3-idt.html#SP19">&#167;19</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP4">&#167;4</a><br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a>, <a href="4-tic2.html#SP4">&#167;4</a><br/>The Permission Construct - <a href="4-tpc3.html#SP3">&#167;3</a>, <a href="4-tpc3.html#SP4">&#167;4</a><br/>The Typename Construct - <a href="4-ttc.html#SP3">&#167;3</a>, <a href="4-ttc.html#SP4">&#167;4</a>, <a href="4-ttc.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</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">) {</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">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">.</span><span class="element-syntax">underlying_constructor</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::constructor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">.</span><span class="element-syntax">underlying_constructor</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP7" class="function-link"><span class="function-syntax">TypenameInstruction::constructor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">.</span><span class="element-syntax">type_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">S</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">.</span><span class="element-syntax">type_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">S</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">type</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">type</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
@ -321,11 +321,11 @@ in which all data is <span class="extract"><span class="extract-syntax">unchecke
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::unchecked</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">InterTypes::unchecked</span></span>:<br/><a href="3-idt.html#SP10">&#167;10</a>, <a href="3-idt.html#SP13">&#167;13</a>, <a href="3-idt.html#SP14">&#167;14</a>, <a href="3-idt.html#SP17_5">&#167;17.5</a>, <a href="3-idt.html#SP18">&#167;18</a>, <a href="3-idt.html#SP23">&#167;23</a><br/>The Instance Construct - <a href="4-tic2.html#SP4_1">&#167;4.1</a><br/>The Property Construct - <a href="4-tpc6.html#SP4">&#167;4</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">&#167;3</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::unchecked</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">InterTypes::unchecked</span></span>:<br/><a href="3-idt.html#SP10">&#167;10</a>, <a href="3-idt.html#SP13">&#167;13</a>, <a href="3-idt.html#SP14">&#167;14</a>, <a href="3-idt.html#SP17_5">&#167;17.5</a>, <a href="3-idt.html#SP18">&#167;18</a>, <a href="3-idt.html#SP23">&#167;23</a><br/>The Instance Construct - <a href="4-tic2.html#SP4_1">&#167;4.1</a><br/>The Property Construct - <a href="4-tpc6.html#SP4">&#167;4</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">&#167;3</a><br/>The Typename Construct - <a href="4-ttc.html#SP7">&#167;7</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="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_constructor_code</span></a><span class="plain-syntax">(</span><span class="constant-syntax">UNCHECKED_ITCONC</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-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_constructor_code</span></a><span class="plain-syntax">(</span><span class="constant-syntax">UNCHECKED_ITCONC</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">InterTypes::is_unchecked</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">InterTypes::is_unchecked</span></span>:<br/>Inter in Text Files - <a href="3-iitf.html#SP13">&#167;13</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::is_unchecked</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">InterTypes::is_unchecked</span></span>:<br/>Inter in Text Files - <a href="3-iitf.html#SP13">&#167;13</a><br/>The Typename Construct - <a href="4-ttc.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</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-idt.html#SP11" class="function-link"><span class="function-syntax">InterTypes::constructor_code</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type</span><span class="plain-syntax">) == </span><span class="constant-syntax">UNCHECKED_ITCONC</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">if</span><span class="plain-syntax"> (</span><a href="3-idt.html#SP11" class="function-link"><span class="function-syntax">InterTypes::constructor_code</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type</span><span class="plain-syntax">) == </span><span class="constant-syntax">UNCHECKED_ITCONC</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">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="plain-syntax">}</span>
@ -336,7 +336,7 @@ only with a typename can we have an arity other than the default (e.g. a
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::arity_is_possible</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">InterTypes::arity_is_possible</span></span>:<br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">arity</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::arity_is_possible</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">InterTypes::arity_is_possible</span></span>:<br/>The Typename Construct - <a href="4-ttc.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">arity</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">itc</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP11" class="function-link"><span class="function-syntax">InterTypes::constructor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_type_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">itc</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP11" class="function-link"><span class="function-syntax">InterTypes::constructor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type</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">itc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">arity</span><span class="plain-syntax"> == (</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">arity</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">itc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">arity</span><span class="plain-syntax"> == (</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">arity</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">itc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">constructor_ID</span><span class="plain-syntax"> == </span><span class="constant-syntax">TABLE_ITCONC</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">itc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">constructor_ID</span><span class="plain-syntax"> == </span><span class="constant-syntax">TABLE_ITCONC</span><span class="plain-syntax">)</span>
@ -351,20 +351,20 @@ only with a typename can we have an arity other than the default (e.g. a
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::type_arity</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">InterTypes::type_arity</span></span>:<br/><a href="3-idt.html#SP20">&#167;20</a>, <a href="3-idt.html#SP22_4">&#167;22.4</a><br/>The Constant Construct - <a href="4-tcc2.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::type_arity</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">InterTypes::type_arity</span></span>:<br/><a href="3-idt.html#SP20">&#167;20</a>, <a href="3-idt.html#SP22_4">&#167;22.4</a><br/>The Constant Construct - <a href="4-tcc2.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">type_name</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP11" class="function-link"><span class="function-syntax">InterTypes::type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">type_name</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP11" class="function-link"><span class="function-syntax">InterTypes::type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type</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">type_name</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type_name</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">type_name</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-ttc.html#SP7" class="function-link"><span class="function-syntax">TypenameInstruction::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type_name</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-idt.html#SP11" class="function-link"><span class="function-syntax">InterTypes::constructor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">arity</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-idt.html#SP11" class="function-link"><span class="function-syntax">InterTypes::constructor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">arity</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::type_operand</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">InterTypes::type_operand</span></span>:<br/><a href="3-idt.html#SP20">&#167;20</a>, <a href="3-idt.html#SP22_4">&#167;22.4</a><br/>The Constant Construct - <a href="4-tcc2.html#SP4">&#167;4</a>, <a href="4-tcc2.html#SP5_4">&#167;5.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</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="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::type_operand</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">InterTypes::type_operand</span></span>:<br/><a href="3-idt.html#SP20">&#167;20</a>, <a href="3-idt.html#SP22_4">&#167;22.4</a><br/>The Constant Construct - <a href="4-tcc2.html#SP4">&#167;4</a>, <a href="4-tcc2.html#SP5_4">&#167;5.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</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="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">type_name</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP11" class="function-link"><span class="function-syntax">InterTypes::type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">type_name</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP11" class="function-link"><span class="function-syntax">InterTypes::type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type</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">type_name</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::operand_type</span></a><span class="plain-syntax">(</span><a href="3-idt.html#SP11" class="function-link"><span class="function-syntax">InterTypes::type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type</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">type_name</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-ttc.html#SP7" class="function-link"><span class="function-syntax">TypenameInstruction::operand_type</span></a><span class="plain-syntax">(</span><a href="3-idt.html#SP11" class="function-link"><span class="function-syntax">InterTypes::type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type</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">return</span><span class="plain-syntax"> </span><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::unchecked</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::unchecked</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. Converting inter_type to TID. </b></p> <p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. Converting inter_type to TID. </b></p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::from_TID</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">InterTypes::from_TID</span></span>:<br/><a href="3-idt.html#SP18">&#167;18</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">TID</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::from_TID</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">InterTypes::from_TID</span></span>:<br/><a href="3-idt.html#SP18">&#167;18</a><br/>The Typename Construct - <a href="4-ttc.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">TID</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">TID</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">SYMBOL_BASE_VAL</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">TID</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">SYMBOL_BASE_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="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><span class="plain-syntax">(</span><a href="2-st.html#SP12" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">TID</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-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><span class="plain-syntax">(</span><a href="2-st.html#SP12" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">TID</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-idt.html#SP2" class="function-link"><span class="function-syntax">InterTypes::is_valid_constructor_code</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">TID</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-idt.html#SP2" class="function-link"><span class="function-syntax">InterTypes::is_valid_constructor_code</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">TID</span><span class="plain-syntax">))</span>
@ -372,7 +372,7 @@ only with a typename can we have an arity other than the default (e.g. a
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::unchecked</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::unchecked</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::from_TID_in_field</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">InterTypes::from_TID_in_field</span></span>:<br/><a href="3-idt.html#SP23">&#167;23</a><br/>Inter in Text Files - <a href="3-iitf.html#SP13">&#167;13</a><br/>The Constant Construct - <a href="4-tcc2.html#SP4">&#167;4</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">field</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::from_TID_in_field</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">InterTypes::from_TID_in_field</span></span>:<br/><a href="3-idt.html#SP23">&#167;23</a><br/>Inter in Text Files - <a href="3-iitf.html#SP13">&#167;13</a><br/>The Constant Construct - <a href="4-tcc2.html#SP4">&#167;4</a><br/>The Variable Construct - <a href="4-tvc.html#SP3">&#167;3</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">field</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-idt.html#SP14" class="function-link"><span class="function-syntax">InterTypes::from_TID</span></a><span class="plain-syntax">(</span><a href="2-pck.html#SP10" class="function-link"><span class="function-syntax">InterPackage::scope</span></a><span class="plain-syntax">(</span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inode::get_package</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">return</span><span class="plain-syntax"> </span><a href="3-idt.html#SP14" class="function-link"><span class="function-syntax">InterTypes::from_TID</span></a><span class="plain-syntax">(</span><a href="2-pck.html#SP10" class="function-link"><span class="function-syntax">InterPackage::scope</span></a><span class="plain-syntax">(</span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inode::get_package</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="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">field</span><span class="plain-syntax">]);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">field</span><span class="plain-syntax">]);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -388,7 +388,7 @@ only with a typename can we have an arity other than the default (e.g. a
<span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::to_TID_at</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">InterTypes::to_TID_at</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP2">&#167;2</a>, <a href="4-tcc2.html#SP3">&#167;3</a><br/>The Property Construct - <a href="4-tpc6.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">) {</span> <span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::to_TID_at</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">InterTypes::to_TID_at</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP2">&#167;2</a>, <a href="4-tcc2.html#SP3">&#167;3</a><br/>The Property Construct - <a href="4-tpc6.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</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">type</span><span class="plain-syntax">.</span><span class="element-syntax">type_name</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">type</span><span class="plain-syntax">.</span><span class="element-syntax">type_name</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-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">type</span><span class="plain-syntax">.</span><span class="element-syntax">type_name</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-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">type</span><span class="plain-syntax">.</span><span class="element-syntax">type_name</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">type</span><span class="plain-syntax">.</span><span class="element-syntax">underlying_constructor</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">type</span><span class="plain-syntax">.</span><span class="element-syntax">underlying_constructor</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
@ -411,7 +411,7 @@ Inter because it's primarily designed as a language for programs to write.
<span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">operand_TIDs</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">operand_TIDs</span><span class="plain-syntax">;</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_semisimple_type_description</span><span class="plain-syntax">;</span> <span class="plain-syntax">} </span><span class="reserved-syntax">inter_semisimple_type_description</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::initialise_isstd</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">InterTypes::initialise_isstd</span></span>:<br/><a href="3-idt.html#SP18">&#167;18</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_semisimple_type_description</span><span class="plain-syntax"> *</span><span class="identifier-syntax">results</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::initialise_isstd</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">InterTypes::initialise_isstd</span></span>:<br/><a href="3-idt.html#SP18">&#167;18</a><br/>The Typename Construct - <a href="4-ttc.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_semisimple_type_description</span><span class="plain-syntax"> *</span><span class="identifier-syntax">results</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">results</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">constructor_code</span><span class="plain-syntax"> = </span><span class="constant-syntax">UNCHECKED_ITCONC</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">results</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">constructor_code</span><span class="plain-syntax"> = </span><span class="constant-syntax">UNCHECKED_ITCONC</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">results</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">arity</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">results</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">arity</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">results</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">capacity</span><span class="plain-syntax"> = </span><span class="constant-syntax">DEFAULT_SIZE_OF_ISSTD_OPERAND_ARRAY</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">results</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">capacity</span><span class="plain-syntax"> = </span><span class="constant-syntax">DEFAULT_SIZE_OF_ISSTD_OPERAND_ARRAY</span><span class="plain-syntax">;</span>
@ -443,7 +443,7 @@ prevents a memory leak if really large results were returned.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::dispose_of_isstd</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">InterTypes::dispose_of_isstd</span></span>:<br/><a href="3-idt.html#SP18">&#167;18</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_semisimple_type_description</span><span class="plain-syntax"> *</span><span class="identifier-syntax">results</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::dispose_of_isstd</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">InterTypes::dispose_of_isstd</span></span>:<br/><a href="3-idt.html#SP18">&#167;18</a><br/>The Typename Construct - <a href="4-ttc.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_semisimple_type_description</span><span class="plain-syntax"> *</span><span class="identifier-syntax">results</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">results</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">constructor_code</span><span class="plain-syntax"> = </span><span class="constant-syntax">UNCHECKED_ITCONC</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">results</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">constructor_code</span><span class="plain-syntax"> = </span><span class="constant-syntax">UNCHECKED_ITCONC</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">results</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">arity</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">results</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">arity</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-idt.html#SP16_2" class="named-paragraph-link"><span class="named-paragraph">Free operand memory</span><span class="named-paragraph-number">16.2</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP16_2" class="named-paragraph-link"><span class="named-paragraph">Free operand memory</span><span class="named-paragraph-number">16.2</span></a></span><span class="plain-syntax">;</span>
@ -462,7 +462,7 @@ prevents a memory leak if really large results were returned.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">InterTypes::parse_semisimple</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">InterTypes::parse_semisimple</span></span>:<br/><a href="3-idt.html#SP18">&#167;18</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">,</span> <span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">InterTypes::parse_semisimple</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">InterTypes::parse_semisimple</span></span>:<br/><a href="3-idt.html#SP18">&#167;18</a><br/>The Typename Construct - <a href="4-ttc.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbols_table</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">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_semisimple_type_description</span><span class="plain-syntax"> *</span><span class="identifier-syntax">results</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_semisimple_type_description</span><span class="plain-syntax"> *</span><span class="identifier-syntax">results</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">results</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">constructor_code</span><span class="plain-syntax"> = </span><span class="constant-syntax">UNCHECKED_ITCONC</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">results</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">constructor_code</span><span class="plain-syntax"> = </span><span class="constant-syntax">UNCHECKED_ITCONC</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">results</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">arity</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">results</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">arity</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
@ -648,7 +648,7 @@ useful error message in response to a semisimple but not simple piece of syntax.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::parse_simple</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">InterTypes::parse_simple</span></span>:<br/><a href="3-idt.html#SP17_1">&#167;17.1</a>, <a href="3-idt.html#SP17_2">&#167;17.2</a>, <a href="3-idt.html#SP17_3">&#167;17.3</a>, <a href="3-idt.html#SP17_4">&#167;17.4</a>, <a href="3-idt.html#SP17_5">&#167;17.5</a>, <a href="3-idt.html#SP17_6">&#167;17.6</a>, <a href="3-idt.html#SP17_7">&#167;17.7</a><br/>The Constant Construct - <a href="4-tcc2.html#SP5_1">&#167;5.1</a><br/>The Property Construct - <a href="4-tpc6.html#SP4">&#167;4</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">,</span> <span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::parse_simple</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">InterTypes::parse_simple</span></span>:<br/><a href="3-idt.html#SP17_1">&#167;17.1</a>, <a href="3-idt.html#SP17_2">&#167;17.2</a>, <a href="3-idt.html#SP17_3">&#167;17.3</a>, <a href="3-idt.html#SP17_4">&#167;17.4</a>, <a href="3-idt.html#SP17_5">&#167;17.5</a>, <a href="3-idt.html#SP17_6">&#167;17.6</a>, <a href="3-idt.html#SP17_7">&#167;17.7</a><br/>The Constant Construct - <a href="4-tcc2.html#SP5_1">&#167;5.1</a><br/>The Property Construct - <a href="4-tpc6.html#SP4">&#167;4</a><br/>The Variable Construct - <a href="4-tvc.html#SP4">&#167;4</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</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">text</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</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">text</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</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">text</span><span class="plain-syntax">) &gt; </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">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_semisimple_type_description</span><span class="plain-syntax"> </span><span class="identifier-syntax">parsed_description</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_semisimple_type_description</span><span class="plain-syntax"> </span><span class="identifier-syntax">parsed_description</span><span class="plain-syntax">;</span>
@ -678,7 +678,7 @@ just print that name, <span class="extract"><span class="extract-syntax">K_whate
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::write_type</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">InterTypes::write_type</span></span>:<br/><a href="3-idt.html#SP20">&#167;20</a>, <a href="3-idt.html#SP22_5">&#167;22.5</a><br/>Inter in Text Files - <a href="3-iitf.html#SP13">&#167;13</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::write_type</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">InterTypes::write_type</span></span>:<br/><a href="3-idt.html#SP20">&#167;20</a>, <a href="3-idt.html#SP22_5">&#167;22.5</a><br/>Inter in Text Files - <a href="3-iitf.html#SP13">&#167;13</a><br/>The Typename Construct - <a href="4-ttc.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</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">type</span><span class="plain-syntax">.</span><span class="element-syntax">type_name</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">type</span><span class="plain-syntax">.</span><span class="element-syntax">type_name</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="3-iitf.html#SP10" class="function-link"><span class="function-syntax">TextualInter::write_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">type</span><span class="plain-syntax">.</span><span class="element-syntax">type_name</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="3-iitf.html#SP10" class="function-link"><span class="function-syntax">TextualInter::write_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">type</span><span class="plain-syntax">.</span><span class="element-syntax">type_name</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">else</span><span class="plain-syntax"> {</span>
@ -686,7 +686,7 @@ just print that name, <span class="extract"><span class="extract-syntax">K_whate
<span class="plain-syntax"> }</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">InterTypes::write_typename_definition</span><button class="popup" onclick="togglePopup('usagePopup26')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup26">Usage of <span class="code-font"><span class="function-syntax">InterTypes::write_typename_definition</span></span>:<br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">type_name</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::write_typename_definition</span><button class="popup" onclick="togglePopup('usagePopup26')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup26">Usage of <span class="code-font"><span class="function-syntax">InterTypes::write_typename_definition</span></span>:<br/>The Typename Construct - <a href="4-ttc.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">type_name</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="3-idt.html#SP20" class="function-link"><span class="function-syntax">InterTypes::write_type_longhand</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type_name</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><a href="3-idt.html#SP20" class="function-link"><span class="function-syntax">InterTypes::write_type_longhand</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type_name</span><span class="plain-syntax">));</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
@ -739,7 +739,7 @@ just print that name, <span class="extract"><span class="extract-syntax">K_whate
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::is_enumerated</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">InterTypes::is_enumerated</span></span>:<br/>Inter in Text Files - <a href="3-iitf.html#SP12_14_1">&#167;12.14.1</a><br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a>, <a href="4-tic2.html#SP4">&#167;4</a><br/>The Permission Construct - <a href="4-tpc3.html#SP3">&#167;3</a>, <a href="4-tpc3.html#SP4">&#167;4</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::is_enumerated</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">InterTypes::is_enumerated</span></span>:<br/>Inter in Text Files - <a href="3-iitf.html#SP12_14_1">&#167;12.14.1</a><br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a>, <a href="4-tic2.html#SP4">&#167;4</a><br/>The Permission Construct - <a href="4-tpc3.html#SP3">&#167;3</a>, <a href="4-tpc3.html#SP4">&#167;4</a><br/>The Typename Construct - <a href="4-ttc.html#SP3">&#167;3</a>, <a href="4-ttc.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">itc</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP11" class="function-link"><span class="function-syntax">InterTypes::constructor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_type_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">itc</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP11" class="function-link"><span class="function-syntax">InterTypes::constructor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type</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">itc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_enumerated</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">itc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_enumerated</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
@ -820,7 +820,7 @@ enumerated type for "thing", for example.
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typenameB_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">B</span><span class="plain-syntax">.</span><span class="element-syntax">type_name</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typenameB_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">B</span><span class="plain-syntax">.</span><span class="element-syntax">type_name</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typenameA_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">A</span><span class="plain-syntax">.</span><span class="element-syntax">type_name</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typenameA_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">A</span><span class="plain-syntax">.</span><span class="element-syntax">type_name</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">typenameB_s</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">typenameA_s</span><span class="plain-syntax">) &amp;&amp;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">typenameB_s</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">typenameA_s</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::is_a</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typenameA_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">typenameB_s</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span> <span class="plain-syntax"> (</span><a href="4-ttc.html#SP10" class="function-link"><span class="function-syntax">TypenameInstruction::is_a</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typenameA_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">typenameB_s</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-idt.html#SP22_5" class="named-paragraph-link"><span class="named-paragraph">Throw type mismatch error</span><span class="named-paragraph-number">22.5</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP22_5" class="named-paragraph-link"><span class="named-paragraph">Throw type mismatch error</span><span class="named-paragraph-number">22.5</span></a></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">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">NULL</span><span class="plain-syntax">;</span>

View file

@ -130,13 +130,13 @@ of ways.)
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">InterErrors::quoted</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">InterErrors::quoted</span></span>:<br/>Annotations - <a href="2-ann.html#SP15">&#167;15</a><br/>Inter Constructs - <a href="3-ic.html#SP7">&#167;7</a><br/>Inter in Text Files - <a href="3-iitf.html#SP4">&#167;4</a>, <a href="3-iitf.html#SP5">&#167;5</a>, <a href="3-iitf.html#SP5_1">&#167;5.1</a>, <a href="3-iitf.html#SP5_2">&#167;5.2</a>, <a href="3-iitf.html#SP6">&#167;6</a>, <a href="3-iitf.html#SP7_1">&#167;7.1</a>, <a href="3-iitf.html#SP11">&#167;11</a>, <a href="3-iitf.html#SP12">&#167;12</a>, <a href="3-iitf.html#SP12_2">&#167;12.2</a>, <a href="3-iitf.html#SP12_14">&#167;12.14</a>, <a href="3-iitf.html#SP12_14_1">&#167;12.14.1</a><br/>Inter Data Types - <a href="3-idt.html#SP17">&#167;17</a>, <a href="3-idt.html#SP17_8">&#167;17.8</a>, <a href="3-idt.html#SP18">&#167;18</a><br/>The Append Construct - <a href="4-tac.html#SP4">&#167;4</a><br/>The Instance Construct - <a href="4-tic2.html#SP4">&#167;4</a><br/>The Permission Construct - <a href="4-tpc3.html#SP4">&#167;4</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP6">&#167;6</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP4">&#167;4</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">err</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">quote</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">InterErrors::quoted</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">InterErrors::quoted</span></span>:<br/>Annotations - <a href="2-ann.html#SP15">&#167;15</a><br/>Inter Constructs - <a href="3-ic.html#SP7">&#167;7</a><br/>Inter in Text Files - <a href="3-iitf.html#SP4">&#167;4</a>, <a href="3-iitf.html#SP5">&#167;5</a>, <a href="3-iitf.html#SP5_1">&#167;5.1</a>, <a href="3-iitf.html#SP5_2">&#167;5.2</a>, <a href="3-iitf.html#SP6">&#167;6</a>, <a href="3-iitf.html#SP7_1">&#167;7.1</a>, <a href="3-iitf.html#SP11">&#167;11</a>, <a href="3-iitf.html#SP12">&#167;12</a>, <a href="3-iitf.html#SP12_2">&#167;12.2</a>, <a href="3-iitf.html#SP12_14">&#167;12.14</a>, <a href="3-iitf.html#SP12_14_1">&#167;12.14.1</a><br/>Inter Data Types - <a href="3-idt.html#SP17">&#167;17</a>, <a href="3-idt.html#SP17_8">&#167;17.8</a>, <a href="3-idt.html#SP18">&#167;18</a><br/>The Append Construct - <a href="4-tac.html#SP4">&#167;4</a><br/>The Instance Construct - <a href="4-tic2.html#SP4">&#167;4</a><br/>The Permission Construct - <a href="4-tpc3.html#SP4">&#167;4</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP6">&#167;6</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP4">&#167;4</a><br/>The Typename Construct - <a href="4-ttc.html#SP4">&#167;4</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">err</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">quote</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iem</span><span class="plain-syntax"> = </span><a href="3-ie.html#SP4" class="function-link"><span class="function-syntax">InterErrors::plain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">err</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iem</span><span class="plain-syntax"> = </span><a href="3-ie.html#SP4" class="function-link"><span class="function-syntax">InterErrors::plain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">err</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">iem</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">error_quote</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">quote</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">iem</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">error_quote</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">quote</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">iem</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">iem</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">InterErrors::plain</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">InterErrors::plain</span></span>:<br/>Inter Constructs - <a href="3-ic.html#SP5">&#167;5</a>, <a href="3-ic.html#SP6">&#167;6</a>, <a href="3-ic.html#SP7">&#167;7</a>, <a href="3-ic.html#SP20">&#167;20</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP10">&#167;10</a><br/>Inter in Text Files - <a href="3-iitf.html#SP3_1">&#167;3.1</a>, <a href="3-iitf.html#SP11">&#167;11</a><br/>Inter Data Types - <a href="3-idt.html#SP22_5">&#167;22.5</a><br/>The Lab Construct - <a href="5-tac.html#SP2">&#167;2</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a><br/>The Code Construct - <a href="5-tcc2.html#SP2">&#167;2</a><br/>The Evaluation Construct - <a href="5-tec.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Reference Construct - <a href="5-trc2.html#SP2">&#167;2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">&#167;1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">&#167;1</a><br/>The Version Construct - <a href="6-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">err</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">InterErrors::plain</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">InterErrors::plain</span></span>:<br/>Inter Constructs - <a href="3-ic.html#SP5">&#167;5</a>, <a href="3-ic.html#SP6">&#167;6</a>, <a href="3-ic.html#SP7">&#167;7</a>, <a href="3-ic.html#SP20">&#167;20</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP10">&#167;10</a><br/>Inter in Text Files - <a href="3-iitf.html#SP3_1">&#167;3.1</a>, <a href="3-iitf.html#SP11">&#167;11</a><br/>Inter Data Types - <a href="3-idt.html#SP22_5">&#167;22.5</a><br/>The Assembly Construct - <a href="5-tac.html#SP2">&#167;2</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a><br/>The Code Construct - <a href="5-tcc2.html#SP2">&#167;2</a><br/>The Evaluation Construct - <a href="5-tec.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Reference Construct - <a href="5-trc2.html#SP2">&#167;2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">&#167;1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">&#167;1</a><br/>The Version Construct - <a href="6-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">err</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iem</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iem</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">iem</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">error_body</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">err</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">iem</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">error_body</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">err</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">iem</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">error_quote</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">iem</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">error_quote</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>

View file

@ -246,7 +246,7 @@ scope; the name must currently be free, or an error is generated.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">TextualInter::new_symbol</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">TextualInter::new_symbol</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP5_1">&#167;5.1</a><br/>The Instance Construct - <a href="4-tic2.html#SP4">&#167;4</a><br/>The Package Construct - <a href="4-tpc.html#SP4">&#167;4</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP3">&#167;3</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP4">&#167;4</a><br/>The Property Construct - <a href="4-tpc6.html#SP4">&#167;4</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">&#167;1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">,</span> <span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">TextualInter::new_symbol</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">TextualInter::new_symbol</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP5_1">&#167;5.1</a><br/>The Instance Construct - <a href="4-tic2.html#SP4">&#167;4</a><br/>The Package Construct - <a href="4-tpc.html#SP4">&#167;4</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP3">&#167;3</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP4">&#167;4</a><br/>The Property Construct - <a href="4-tpc6.html#SP4">&#167;4</a><br/>The Typename Construct - <a href="4-ttc.html#SP4">&#167;4</a><br/>The Variable Construct - <a href="4-tvc.html#SP4">&#167;4</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">&#167;1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbols_table</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</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="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</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">E</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><a href="2-st.html#SP6" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><a href="2-st.html#SP6" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
@ -265,7 +265,7 @@ enables us to tell if it's, e.g., a variable, defined by <span class="extract"><
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">TextualInter::find_symbol</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">TextualInter::find_symbol</span></span>:<br/>The DefaultValue Construct - <a href="4-tdc.html#SP4">&#167;4</a><br/>The Instance Construct - <a href="4-tic2.html#SP4_1">&#167;4.1</a><br/>The Permission Construct - <a href="4-tpc3.html#SP4">&#167;4</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP4">&#167;4</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">,</span> <span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">TextualInter::find_symbol</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">TextualInter::find_symbol</span></span>:<br/>The DefaultValue Construct - <a href="4-tdc.html#SP4">&#167;4</a><br/>The Instance Construct - <a href="4-tic2.html#SP4_1">&#167;4.1</a><br/>The Permission Construct - <a href="4-tpc3.html#SP4">&#167;4</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP4">&#167;4</a><br/>The Typename Construct - <a href="4-ttc.html#SP4">&#167;4</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</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="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">construct</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</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="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">construct</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</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-iitf.html#SP5" class="function-link"><span class="function-syntax">TextualInter::find_symbol_in_table</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</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-iitf.html#SP5" class="function-link"><span class="function-syntax">TextualInter::find_symbol_in_table</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -537,7 +537,7 @@ outer structure:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TextualInter::write_pair</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">TextualInter::write_pair</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP6">&#167;6</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP5">&#167;5</a><br/>The Instance Construct - <a href="4-tic2.html#SP5">&#167;5</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP5">&#167;5</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-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">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">pair</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hex</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TextualInter::write_pair</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">TextualInter::write_pair</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP6">&#167;6</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP5">&#167;5</a><br/>The Instance Construct - <a href="4-tic2.html#SP5">&#167;5</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP5">&#167;5</a><br/>The Variable Construct - <a href="4-tvc.html#SP5">&#167;5</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-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">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">pair</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hex</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inode::tree</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">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inode::tree</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><a href="3-ivp.html#SP5" class="function-link"><span class="function-syntax">InterValuePairs::is_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pair</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="3-iitf.html#SP12_1" class="named-paragraph-link"><span class="named-paragraph">Print numeric literal syntax</span><span class="named-paragraph-number">12.1</span></a></span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-ivp.html#SP5" class="function-link"><span class="function-syntax">InterValuePairs::is_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pair</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="3-iitf.html#SP12_1" class="named-paragraph-link"><span class="named-paragraph">Print numeric literal syntax</span><span class="named-paragraph-number">12.1</span></a></span>
@ -552,7 +552,7 @@ outer structure:
<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">"&lt;invalid-value-type&gt;"</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">"&lt;invalid-value-type&gt;"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">TextualInter::parse_pair</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">TextualInter::parse_pair</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP5_3">&#167;5.3</a>, <a href="4-tcc2.html#SP5_4">&#167;5.4</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP4">&#167;4</a><br/>The Instance Construct - <a href="4-tic2.html#SP4_1">&#167;4.1</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP4">&#167;4</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">line</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">,</span> <span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">TextualInter::parse_pair</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">TextualInter::parse_pair</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP5_3">&#167;5.3</a>, <a href="4-tcc2.html#SP5_4">&#167;5.4</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP4">&#167;4</a><br/>The Instance Construct - <a href="4-tic2.html#SP4_1">&#167;4.1</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP4">&#167;4</a><br/>The Variable Construct - <a href="4-tvc.html#SP4">&#167;4</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">line</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type_wanted</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><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pair</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type_wanted</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><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pair</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scope</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scope</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>
@ -873,7 +873,7 @@ therefore used typelessly.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TextualInter::write_optional_type_marker</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">TextualInter::write_optional_type_marker</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP6">&#167;6</a><br/>The Property Construct - <a href="4-tpc6.html#SP5">&#167;5</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">field</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TextualInter::write_optional_type_marker</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">TextualInter::write_optional_type_marker</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP6">&#167;6</a><br/>The Property Construct - <a href="4-tpc6.html#SP5">&#167;5</a><br/>The Variable Construct - <a href="4-tvc.html#SP5">&#167;5</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">field</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP14" class="function-link"><span class="function-syntax">InterTypes::from_TID_in_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">field</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP14" class="function-link"><span class="function-syntax">InterTypes::from_TID_in_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">field</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">type</span><span class="plain-syntax">.</span><span class="element-syntax">type_name</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">type</span><span class="plain-syntax">.</span><span class="element-syntax">type_name</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><a href="3-iitf.html#SP10" class="function-link"><span class="function-syntax">TextualInter::write_symbol_from</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">field</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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"("</span><span class="plain-syntax">); </span><a href="3-iitf.html#SP10" class="function-link"><span class="function-syntax">TextualInter::write_symbol_from</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">field</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>

View file

@ -438,7 +438,7 @@ which return <a href="3-ivp.html#SP2" class="internal">inter_pair</a> to signal
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="function-syntax">InterValuePairs::undef</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">InterValuePairs::undef</span></span>:<br/><a href="3-ivp.html#SP4">&#167;4</a><br/>Inter in Text Files - <a href="3-iitf.html#SP12_18">&#167;12.18</a><br/>The Constant Construct - <a href="4-tcc2.html#SP5_2_1">&#167;5.2.1</a>, <a href="4-tcc2.html#SP5_3">&#167;5.3</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP4">&#167;4</a><br/>The Instance Construct - <a href="4-tic2.html#SP4">&#167;4</a>, <a href="4-tic2.html#SP6">&#167;6</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP4">&#167;4</a>, <a href="4-tpc7.html#SP6">&#167;6</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="function-syntax">InterValuePairs::undef</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">InterValuePairs::undef</span></span>:<br/><a href="3-ivp.html#SP4">&#167;4</a><br/>Inter in Text Files - <a href="3-iitf.html#SP12_18">&#167;12.18</a><br/>The Constant Construct - <a href="4-tcc2.html#SP5_2_1">&#167;5.2.1</a>, <a href="4-tcc2.html#SP5_3">&#167;5.3</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP4">&#167;4</a><br/>The Instance Construct - <a href="4-tic2.html#SP4">&#167;4</a>, <a href="4-tic2.html#SP6">&#167;6</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP4">&#167;4</a>, <a href="4-tpc7.html#SP6">&#167;6</a><br/>The Variable Construct - <a href="4-tvc.html#SP4">&#167;4</a>, <a href="4-tvc.html#SP6">&#167;6</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;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">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">pair</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">pair</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pair</span><span class="plain-syntax">.</span><span class="element-syntax">data_format</span><span class="plain-syntax"> = </span><span class="constant-syntax">UNDEF_IVAL</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">pair</span><span class="plain-syntax">.</span><span class="element-syntax">data_format</span><span class="plain-syntax"> = </span><span class="constant-syntax">UNDEF_IVAL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pair</span><span class="plain-syntax">.</span><span class="element-syntax">data_content</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">pair</span><span class="plain-syntax">.</span><span class="element-syntax">data_content</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
@ -460,14 +460,14 @@ following functions:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="function-syntax">InterValuePairs::get</span><button class="popup" onclick="togglePopup('usagePopup30')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup30">Usage of <span class="code-font"><span class="function-syntax">InterValuePairs::get</span></span>:<br/>Verifying Inter - <a href="3-vi.html#SP11">&#167;11</a><br/>Metadata - <a href="3-mtd.html#SP4_1">&#167;4.1</a>, <a href="3-mtd.html#SP5_1">&#167;5.1</a>, <a href="3-mtd.html#SP6_1">&#167;6.1</a><br/>The Constant Construct - <a href="4-tcc2.html#SP3">&#167;3</a>, <a href="4-tcc2.html#SP6">&#167;6</a>, <a href="4-tcc2.html#SP7">&#167;7</a>, <a href="4-tcc2.html#SP8">&#167;8</a>, <a href="4-tcc2.html#SP9">&#167;9</a>, <a href="4-tcc2.html#SP10">&#167;10</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP5">&#167;5</a><br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a>, <a href="4-tic2.html#SP5">&#167;5</a>, <a href="4-tic2.html#SP6">&#167;6</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP6">&#167;6</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">field</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="function-syntax">InterValuePairs::get</span><button class="popup" onclick="togglePopup('usagePopup30')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup30">Usage of <span class="code-font"><span class="function-syntax">InterValuePairs::get</span></span>:<br/>Verifying Inter - <a href="3-vi.html#SP11">&#167;11</a><br/>Metadata - <a href="3-mtd.html#SP4_1">&#167;4.1</a>, <a href="3-mtd.html#SP5_1">&#167;5.1</a>, <a href="3-mtd.html#SP6_1">&#167;6.1</a><br/>The Constant Construct - <a href="4-tcc2.html#SP3">&#167;3</a>, <a href="4-tcc2.html#SP6">&#167;6</a>, <a href="4-tcc2.html#SP7">&#167;7</a>, <a href="4-tcc2.html#SP8">&#167;8</a>, <a href="4-tcc2.html#SP9">&#167;9</a>, <a href="4-tcc2.html#SP10">&#167;10</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP5">&#167;5</a><br/>The Instance Construct - <a href="4-tic2.html#SP2">&#167;2</a>, <a href="4-tic2.html#SP3">&#167;3</a>, <a href="4-tic2.html#SP5">&#167;5</a>, <a href="4-tic2.html#SP6">&#167;6</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP2">&#167;2</a>, <a href="4-tpc7.html#SP6">&#167;6</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a>, <a href="4-tvc.html#SP6">&#167;6</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">field</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">pair</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">pair</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pair</span><span class="plain-syntax">.</span><span class="element-syntax">data_format</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">field</span><span class="plain-syntax">];</span> <span class="plain-syntax"> </span><span class="identifier-syntax">pair</span><span class="plain-syntax">.</span><span class="element-syntax">data_format</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">field</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pair</span><span class="plain-syntax">.</span><span class="element-syntax">data_content</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">field</span><span class="plain-syntax">+1];</span> <span class="plain-syntax"> </span><span class="identifier-syntax">pair</span><span class="plain-syntax">.</span><span class="element-syntax">data_content</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">field</span><span class="plain-syntax">+1];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">pair</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">pair</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">InterValuePairs::set</span><button class="popup" onclick="togglePopup('usagePopup31')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup31">Usage of <span class="code-font"><span class="function-syntax">InterValuePairs::set</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP3">&#167;3</a>, <a href="4-tcc2.html#SP10">&#167;10</a><br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">field</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">pair</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterValuePairs::set</span><button class="popup" onclick="togglePopup('usagePopup31')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup31">Usage of <span class="code-font"><span class="function-syntax">InterValuePairs::set</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP3">&#167;3</a>, <a href="4-tcc2.html#SP10">&#167;10</a><br/>The Instance Construct - <a href="4-tic2.html#SP2">&#167;2</a>, <a href="4-tic2.html#SP3">&#167;3</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">field</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">pair</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">field</span><span class="plain-syntax">] = </span><span class="identifier-syntax">pair</span><span class="plain-syntax">.</span><span class="element-syntax">data_format</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">field</span><span class="plain-syntax">] = </span><span class="identifier-syntax">pair</span><span class="plain-syntax">.</span><span class="element-syntax">data_format</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">field</span><span class="plain-syntax">+1] = </span><span class="identifier-syntax">pair</span><span class="plain-syntax">.</span><span class="element-syntax">data_content</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">field</span><span class="plain-syntax">+1] = </span><span class="identifier-syntax">pair</span><span class="plain-syntax">.</span><span class="element-syntax">data_content</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -491,7 +491,7 @@ in from a binary Inter file (because in that process, resource ID numbers change
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="function-syntax">InterValuePairs::transpose</span><button class="popup" onclick="togglePopup('usagePopup34')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup34">Usage of <span class="code-font"><span class="function-syntax">InterValuePairs::transpose</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP3">&#167;3</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">pair</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">grid</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">grid_extent</span><span class="plain-syntax">,</span> <span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="function-syntax">InterValuePairs::transpose</span><button class="popup" onclick="togglePopup('usagePopup34')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup34">Usage of <span class="code-font"><span class="function-syntax">InterValuePairs::transpose</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP3">&#167;3</a><br/>The Instance Construct - <a href="4-tic2.html#SP2">&#167;2</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">pair</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">grid</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">grid_extent</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</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">pair</span><span class="plain-syntax">.</span><span class="element-syntax">data_format</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">pair</span><span class="plain-syntax">.</span><span class="element-syntax">data_format</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">FUNCTIONAL_IVAL:</span> <span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">FUNCTIONAL_IVAL:</span>

View file

@ -88,7 +88,7 @@ and this is why the code to create instructions automatically calls us.)
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">VerifyingInter::instruction</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">VerifyingInter::instruction</span></span>:<br/>Transmigration - <a href="2-trn.html#SP4_1_1">&#167;4.1.1</a>, <a href="2-trn.html#SP4_2_1_1">&#167;4.2.1.1</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_1_5_4">&#167;9.1.5.4</a><br/>The Append Construct - <a href="4-tac.html#SP2">&#167;2</a><br/>The Comment Construct - <a href="4-tcc.html#SP2">&#167;2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">&#167;2</a>, <a href="4-tcc2.html#SP3">&#167;3</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">&#167;2</a><br/>The Insert Construct - <a href="4-tic.html#SP2">&#167;2</a><br/>The Instance Construct - <a href="4-tic2.html#SP2">&#167;2</a><br/>The Nop Construct - <a href="4-tnc.html#SP2">&#167;2</a><br/>The Package Construct - <a href="4-tpc.html#SP4">&#167;4</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">&#167;2</a><br/>The Permission Construct - <a href="4-tpc3.html#SP2">&#167;2</a><br/>The Pragma Construct - <a href="4-tpc4.html#SP2">&#167;2</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP2">&#167;2</a><br/>The Property Construct - <a href="4-tpc6.html#SP2">&#167;2</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP2">&#167;2</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tac.html#SP2">&#167;2</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a><br/>The Code Construct - <a href="5-tcc2.html#SP2">&#167;2</a><br/>The Evaluation Construct - <a href="5-tec.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Reference Construct - <a href="5-trc2.html#SP2">&#167;2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="reserved-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">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">VerifyingInter::instruction</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">VerifyingInter::instruction</span></span>:<br/>Transmigration - <a href="2-trn.html#SP4_1_1">&#167;4.1.1</a>, <a href="2-trn.html#SP4_2_1_1">&#167;4.2.1.1</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_1_5_4">&#167;9.1.5.4</a><br/>The Append Construct - <a href="4-tac.html#SP2">&#167;2</a><br/>The Comment Construct - <a href="4-tcc.html#SP2">&#167;2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">&#167;2</a>, <a href="4-tcc2.html#SP3">&#167;3</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">&#167;2</a><br/>The Insert Construct - <a href="4-tic.html#SP2">&#167;2</a><br/>The Instance Construct - <a href="4-tic2.html#SP2">&#167;2</a><br/>The Nop Construct - <a href="4-tnc.html#SP2">&#167;2</a><br/>The Package Construct - <a href="4-tpc.html#SP4">&#167;4</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">&#167;2</a><br/>The Permission Construct - <a href="4-tpc3.html#SP2">&#167;2</a><br/>The Pragma Construct - <a href="4-tpc4.html#SP2">&#167;2</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP2">&#167;2</a><br/>The Property Construct - <a href="4-tpc6.html#SP2">&#167;2</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP2">&#167;2</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Assembly Construct - <a href="5-tac.html#SP2">&#167;2</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a><br/>The Code Construct - <a href="5-tcc2.html#SP2">&#167;2</a><br/>The Evaluation Construct - <a href="5-tec.html#SP2">&#167;2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">&#167;2</a><br/>The Lab Construct - <a href="5-tlc.html#SP2">&#167;2</a><br/>The Label Construct - <a href="5-tlc2.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Reference Construct - <a href="5-trc2.html#SP2">&#167;2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</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><a href="2-in.html#SP10" class="function-link"><span class="function-syntax">Inode::get_vflag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</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><a href="2-in.html#SP10" class="function-link"><span class="function-syntax">Inode::get_vflag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-in.html#SP10" class="function-link"><span class="function-syntax">Inode::set_vflag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-in.html#SP10" class="function-link"><span class="function-syntax">Inode::set_vflag</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">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</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">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
@ -209,7 +209,7 @@ the program has not yet been loaded); but it cannot be the wrong sort of thing.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">VerifyingInter::SID_field</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">VerifyingInter::SID_field</span></span>:<br/>The Append Construct - <a href="4-tac.html#SP3">&#167;3</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP3">&#167;3</a><br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a><br/>The Package Construct - <a href="4-tpc.html#SP5">&#167;5</a><br/>The Permission Construct - <a href="4-tpc3.html#SP3">&#167;3</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">&#167;3</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="reserved-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">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">VerifyingInter::SID_field</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">VerifyingInter::SID_field</span></span>:<br/>The Append Construct - <a href="4-tac.html#SP3">&#167;3</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP3">&#167;3</a><br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a><br/>The Package Construct - <a href="4-tpc.html#SP5">&#167;5</a><br/>The Permission Construct - <a href="4-tpc3.html#SP3">&#167;3</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">&#167;3</a><br/>The Typename Construct - <a href="4-ttc.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">field</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">construct</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">field</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">construct</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-vi.html#SP2" class="function-link"><span class="function-syntax">VerifyingInter::SID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">field</span><span class="plain-syntax">], </span><span class="identifier-syntax">construct</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-vi.html#SP2" class="function-link"><span class="function-syntax">VerifyingInter::SID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">field</span><span class="plain-syntax">], </span><span class="identifier-syntax">construct</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -284,7 +284,7 @@ or <span class="extract"><span class="extract-syntax">FUNCTION_ITCONC</span></sp
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">VerifyingInter::constructor_field</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">VerifyingInter::constructor_field</span></span>:<br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">field</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">VerifyingInter::constructor_field</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">VerifyingInter::constructor_field</span></span>:<br/>The Typename Construct - <a href="4-ttc.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">field</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">ID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">field</span><span class="plain-syntax">];</span> <span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">ID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">field</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-idt.html#SP2" class="function-link"><span class="function-syntax">InterTypes::is_valid_constructor_code</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ID</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><a href="3-idt.html#SP2" class="function-link"><span class="function-syntax">InterTypes::is_valid_constructor_code</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ID</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><a href="2-in.html#SP15" class="function-link"><span class="function-syntax">Inode::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"unknown type constructor"</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><a href="2-in.html#SP15" class="function-link"><span class="function-syntax">Inode::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"unknown type constructor"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
@ -296,7 +296,7 @@ or <span class="extract"><span class="extract-syntax">FUNCTION_ITCONC</span></sp
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">VerifyingInter::TID_field</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">VerifyingInter::TID_field</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP4">&#167;4</a><br/>The Property Construct - <a href="4-tpc6.html#SP3">&#167;3</a><br/>The Typename Construct - <a href="4-ttc.html#SP2">&#167;2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="reserved-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">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">VerifyingInter::TID_field</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">VerifyingInter::TID_field</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP4">&#167;4</a><br/>The Property Construct - <a href="4-tpc6.html#SP3">&#167;3</a><br/>The Typename Construct - <a href="4-ttc.html#SP3">&#167;3</a><br/>The Variable Construct - <a href="4-tvc.html#SP3">&#167;3</a><br/>The Cast Construct - <a href="5-tcc.html#SP2">&#167;2</a><br/>The Local Construct - <a href="5-tlc3.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">field</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">field</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">TID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">field</span><span class="plain-syntax">];</span> <span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">TID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">field</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">TID</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">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">TID</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">NULL</span><span class="plain-syntax">;</span>
@ -320,7 +320,7 @@ or <span class="extract"><span class="extract-syntax">FUNCTION_ITCONC</span></sp
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">VerifyingInter::node_list_field</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">VerifyingInter::node_list_field</span></span>:<br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a><br/>The Property Construct - <a href="4-tpc6.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="reserved-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">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">VerifyingInter::node_list_field</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">VerifyingInter::node_list_field</span></span>:<br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a><br/>The Property Construct - <a href="4-tpc6.html#SP3">&#167;3</a><br/>The Typename Construct - <a href="4-ttc.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">field</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">field</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_ID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">field</span><span class="plain-syntax">];</span> <span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_ID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">field</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_warehouse</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><a href="2-it.html#SP3" class="function-link"><span class="function-syntax">InterTree::warehouse</span></a><span class="plain-syntax">(</span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inode::tree</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">inter_warehouse</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><a href="2-it.html#SP3" class="function-link"><span class="function-syntax">InterTree::warehouse</span></a><span class="plain-syntax">(</span><a href="2-in.html#SP6" class="function-link"><span class="function-syntax">Inode::tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">));</span>
@ -357,7 +357,7 @@ the context of the current package:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">VerifyingInter::data_pair_fields</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">VerifyingInter::data_pair_fields</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP4">&#167;4</a><br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">&#167;3</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">&#167;2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">,</span> <span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">VerifyingInter::data_pair_fields</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">VerifyingInter::data_pair_fields</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP4">&#167;4</a><br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">&#167;3</a><br/>The Variable Construct - <a href="4-tvc.html#SP3">&#167;3</a><br/>The Ref Construct - <a href="5-trc.html#SP2">&#167;2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">first_field</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">first_field</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</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-ivp.html#SP24" class="function-link"><span class="function-syntax">InterValuePairs::verify</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><a href="3-ivp.html#SP21" class="function-link"><span class="function-syntax">InterValuePairs::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">first_field</span><span class="plain-syntax">), </span><span class="identifier-syntax">type</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-ivp.html#SP24" class="function-link"><span class="function-syntax">InterValuePairs::verify</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><a href="3-ivp.html#SP21" class="function-link"><span class="function-syntax">InterValuePairs::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">first_field</span><span class="plain-syntax">), </span><span class="identifier-syntax">type</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>

View file

@ -102,7 +102,7 @@ compulsory words <span class="extract"><span class="extract-syntax">ID_IFLD</spa
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">AppendInstruction::new</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">AppendInstruction::new</span></span>:<br/><a href="4-tac.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">,</span> <span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">AppendInstruction::new</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">AppendInstruction::new</span></span>:<br/><a href="4-tac.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">append_text</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</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">append_text</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_2_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">APPEND_IST</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_2_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">APPEND_IST</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">SYMBOL_APPEND_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">SYMBOL_APPEND_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">CONTENT_APPEND_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-tw.html#SP7" class="function-link"><span class="function-syntax">InterWarehouse::create_text_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">append_text</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">CONTENT_APPEND_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-tw.html#SP7" class="function-link"><span class="function-syntax">InterWarehouse::create_text_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">append_text</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>

View file

@ -111,7 +111,7 @@ instruction can be any odd number of words from 5 upwards.
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">ConstantInstruction::new</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">ConstantInstruction::new</span></span>:<br/><a href="4-tcc2.html#SP5_3">&#167;5.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">,</span> <span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">ConstantInstruction::new</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">ConstantInstruction::new</span></span>:<br/><a href="4-tcc2.html#SP5_3">&#167;5.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_5_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTANT_IST</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_5_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTANT_IST</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">DEFN_CONST_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">DEFN_CONST_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">TYPE_CONST_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">type</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">TYPE_CONST_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">type</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">FORMAT_CONST_IFLD:</span><span class="plain-syntax"> */ </span><span class="constant-syntax">CONST_LIST_FORMAT_NONE</span><span class="plain-syntax">,</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">FORMAT_CONST_IFLD:</span><span class="plain-syntax"> */ </span><span class="constant-syntax">CONST_LIST_FORMAT_NONE</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">DATA_CONST_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-ivp.html#SP22" class="function-link"><span class="function-syntax">InterValuePairs::to_word1</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">DATA_CONST_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-ivp.html#SP22" class="function-link"><span class="function-syntax">InterValuePairs::to_word1</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">),</span>
@ -144,7 +144,7 @@ can therefore be calculated as half of (the instruction extent minus <span class
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</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">format</span><span class="plain-syntax"> == </span><span class="constant-syntax">CONST_LIST_FORMAT_NONE</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"not a list"</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">format</span><span class="plain-syntax"> == </span><span class="constant-syntax">CONST_LIST_FORMAT_NONE</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"not a list"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AP</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_3_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTANT_IST</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AP</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_3_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTANT_IST</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">DEFN_CONST_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">DEFN_CONST_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">TYPE_CONST_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">type</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">TYPE_CONST_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">type</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">FORMAT_CONST_IFLD:</span><span class="plain-syntax"> */ (</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">format</span><span class="plain-syntax">,</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">FORMAT_CONST_IFLD:</span><span class="plain-syntax"> */ (</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">format</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span>

View file

@ -101,7 +101,7 @@ compulsory words <span class="extract"><span class="extract-syntax">ID_IFLD</spa
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">DefaultValueInstruction::new</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">DefaultValueInstruction::new</span></span>:<br/><a href="4-tdc.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">,</span> <span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">DefaultValueInstruction::new</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">DefaultValueInstruction::new</span></span>:<br/><a href="4-tdc.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_3_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">DEFAULTVALUE_IST</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_3_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">DEFAULTVALUE_IST</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">TYPE_DEF_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">typename</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">TYPE_DEF_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">typename</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">VAL1_DEF_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-ivp.html#SP22" class="function-link"><span class="function-syntax">InterValuePairs::to_word1</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">VAL1_DEF_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-ivp.html#SP22" class="function-link"><span class="function-syntax">InterValuePairs::to_word1</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">VAL2_DEF_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-ivp.html#SP22" class="function-link"><span class="function-syntax">InterValuePairs::to_word2</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">VAL2_DEF_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-ivp.html#SP22" class="function-link"><span class="function-syntax">InterValuePairs::to_word2</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span>

View file

@ -108,8 +108,8 @@ compulsory words <span class="extract"><span class="extract-syntax">ID_IFLD</spa
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_warehouse</span><span class="plain-syntax"> *</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::warehouse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_warehouse</span><span class="plain-syntax"> *</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::warehouse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_6_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">INSTANCE_IST</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_6_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">INSTANCE_IST</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">DEFN_INST_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">DEFN_INST_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">TYPE_INST_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">TYPE_INST_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">VAL1_INST_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-ivp.html#SP22" class="function-link"><span class="function-syntax">InterValuePairs::to_word1</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">VAL1_INST_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-ivp.html#SP22" class="function-link"><span class="function-syntax">InterValuePairs::to_word1</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">VAL2_INST_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-ivp.html#SP22" class="function-link"><span class="function-syntax">InterValuePairs::to_word2</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">VAL2_INST_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-ivp.html#SP22" class="function-link"><span class="function-syntax">InterValuePairs::to_word2</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">PROP_LIST_INST_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-tw.html#SP10" class="function-link"><span class="function-syntax">InterWarehouse::create_node_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">PROP_LIST_INST_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-tw.html#SP10" class="function-link"><span class="function-syntax">InterWarehouse::create_node_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">),</span>
@ -125,6 +125,8 @@ compulsory words <span class="extract"><span class="extract-syntax">ID_IFLD</spa
<span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">grid</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">grid_extent</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">grid</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">grid_extent</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PROP_LIST_INST_IFLD</span><span class="plain-syntax">] = </span><span class="identifier-syntax">grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PROP_LIST_INST_IFLD</span><span class="plain-syntax">]];</span> <span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PROP_LIST_INST_IFLD</span><span class="plain-syntax">] = </span><span class="identifier-syntax">grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PROP_LIST_INST_IFLD</span><span class="plain-syntax">]];</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PERM_LIST_INST_IFLD</span><span class="plain-syntax">] = </span><span class="identifier-syntax">grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PERM_LIST_INST_IFLD</span><span class="plain-syntax">]];</span> <span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PERM_LIST_INST_IFLD</span><span class="plain-syntax">] = </span><span class="identifier-syntax">grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PERM_LIST_INST_IFLD</span><span class="plain-syntax">]];</span>
<span class="plain-syntax"> </span><a href="3-ivp.html#SP21" class="function-link"><span class="function-syntax">InterValuePairs::set</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_INST_IFLD</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="3-ivp.html#SP23" class="function-link"><span class="function-syntax">InterValuePairs::transpose</span></a><span class="plain-syntax">(</span><a href="3-ivp.html#SP21" class="function-link"><span class="function-syntax">InterValuePairs::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_INST_IFLD</span><span class="plain-syntax">), </span><span class="identifier-syntax">grid</span><span class="plain-syntax">, </span><span class="identifier-syntax">grid_extent</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">));</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>Verification does more than making sanity checks: it also calculates and sets <p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>Verification does more than making sanity checks: it also calculates and sets
@ -147,7 +149,7 @@ the typename_s that it has a new instance.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-idt.html#SP21" class="function-link"><span class="function-syntax">InterTypes::is_enumerated</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inst_type</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-idt.html#SP21" class="function-link"><span class="function-syntax">InterTypes::is_enumerated</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inst_type</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-ivp.html#SP20" class="function-link"><span class="function-syntax">InterValuePairs::is_undef</span></a><span class="plain-syntax">(</span><a href="3-ivp.html#SP21" class="function-link"><span class="function-syntax">InterValuePairs::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_INST_IFLD</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-ivp.html#SP20" class="function-link"><span class="function-syntax">InterValuePairs::is_undef</span></a><span class="plain-syntax">(</span><a href="3-ivp.html#SP21" class="function-link"><span class="function-syntax">InterValuePairs::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_INST_IFLD</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><a href="3-ivp.html#SP21" class="function-link"><span class="function-syntax">InterValuePairs::set</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_INST_IFLD</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><a href="3-ivp.html#SP21" class="function-link"><span class="function-syntax">InterValuePairs::set</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_INST_IFLD</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="3-ivp.html#SP4" class="function-link"><span class="function-syntax">InterValuePairs::number</span></a><span class="plain-syntax">(</span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::next_enumerated_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">)));</span> <span class="plain-syntax"> </span><a href="3-ivp.html#SP4" class="function-link"><span class="function-syntax">InterValuePairs::number</span></a><span class="plain-syntax">(</span><a href="4-ttc.html#SP8" class="function-link"><span class="function-syntax">TypenameInstruction::next_enumerated_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="2-in.html#SP15" class="function-link"><span class="function-syntax">Inode::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"not a kind which has instances"</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="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="2-in.html#SP15" class="function-link"><span class="function-syntax">Inode::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"not a kind which has instances"</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="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
@ -156,7 +158,7 @@ the typename_s that it has a new instance.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">instance_s</span><span class="plain-syntax"> = </span><a href="4-tic2.html#SP6" class="function-link"><span class="function-syntax">InstanceInstruction::instance</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">instance_s</span><span class="plain-syntax"> = </span><a href="4-tic2.html#SP6" class="function-link"><span class="function-syntax">InstanceInstruction::instance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::new_instance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="4-ttc.html#SP9" class="function-link"><span class="function-syntax">TypenameInstruction::new_instance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. Creating from textual Inter syntax. </b></p> <p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. Creating from textual Inter syntax. </b></p>

View file

@ -149,7 +149,7 @@ same package, you'll get <span class="extract"><span class="extract-syntax">bag<
<span class="plain-syntax"> </span><a href="3-iitf.html#SP4" class="function-link"><span class="function-syntax">TextualInter::new_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">name_text</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="3-iitf.html#SP4" class="function-link"><span class="function-syntax">TextualInter::new_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">name_text</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_4_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">PACKAGE_IST</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_4_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">PACKAGE_IST</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">DEFN_PACKAGE_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">package_name</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">DEFN_PACKAGE_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">package_name</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">PTYPE_PACKAGE_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP15" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ptype_name</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">PTYPE_PACKAGE_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP15" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ptype_name</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">SYMBOLS_PACKAGE_IFLD:</span><span class="plain-syntax"> */ </span><span class="identifier-syntax">STID</span><span class="plain-syntax">,</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">SYMBOLS_PACKAGE_IFLD:</span><span class="plain-syntax"> */ </span><span class="identifier-syntax">STID</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">PID_PACKAGE_IFLD:</span><span class="plain-syntax"> */ </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="comment-syntax"> but see just below...</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">PID_PACKAGE_IFLD:</span><span class="plain-syntax"> */ </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="comment-syntax"> but see just below...</span>

View file

@ -99,7 +99,7 @@ compulsory words <span class="extract"><span class="extract-syntax">ID_IFLD</spa
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">PackageTypeInstruction::new</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">PackageTypeInstruction::new</span></span>:<br/><a href="4-tpc2.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ptype</span><span class="plain-syntax">,</span> <span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">PackageTypeInstruction::new</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">PackageTypeInstruction::new</span></span>:<br/><a href="4-tpc2.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ptype</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_1_data_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">PACKAGETYPE_IST</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_1_data_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">PACKAGETYPE_IST</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">DEFN_PTYPE_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">ptype</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">DEFN_PTYPE_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">ptype</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>

View file

@ -102,10 +102,10 @@ compulsory words <span class="extract"><span class="extract-syntax">ID_IFLD</spa
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">storage_s</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">storage_s</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">SID</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">SID</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">storage_s</span><span class="plain-syntax">) </span><span class="identifier-syntax">SID</span><span class="plain-syntax"> = </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">storage_s</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">storage_s</span><span class="plain-syntax">) </span><span class="identifier-syntax">SID</span><span class="plain-syntax"> = </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">storage_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_3_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">PERMISSION_IST</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_3_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">PERMISSION_IST</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">PROP_PERM_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">prop_s</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">PROP_PERM_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">prop_s</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">OWNER_PERM_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">OWNER_PERM_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">STORAGE_PERM_IFLD:</span><span class="plain-syntax"> */ </span><span class="identifier-syntax">SID</span><span class="plain-syntax">,</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">STORAGE_PERM_IFLD:</span><span class="plain-syntax"> */ </span><span class="identifier-syntax">SID</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
@ -139,12 +139,12 @@ the new permission to the list for the owner and for the property.
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax"> = </span><a href="2-st.html#SP13" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID_at_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">OWNER_PERM_IFLD</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax"> = </span><a href="2-st.html#SP13" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID_at_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">OWNER_PERM_IFLD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_node_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FL</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">inter_node_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FL</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><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::is</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">)) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-ttc.html#SP10" class="function-link"><span class="function-syntax">TypenameInstruction::is</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</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-idt.html#SP21" class="function-link"><span class="function-syntax">InterTypes::is_enumerated</span></a><span class="plain-syntax">(</span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</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><a href="3-idt.html#SP21" class="function-link"><span class="function-syntax">InterTypes::is_enumerated</span></a><span class="plain-syntax">(</span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</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">E</span><span class="plain-syntax"> = </span><a href="2-in.html#SP15" class="function-link"><span class="function-syntax">Inode::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"property permission for non-enumerated kind"</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">E</span><span class="plain-syntax"> = </span><a href="2-in.html#SP15" class="function-link"><span class="function-syntax">Inode::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"property permission for non-enumerated kind"</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="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="plain-syntax"> </span><span class="identifier-syntax">FL</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::permissions_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">FL</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP6" class="function-link"><span class="function-syntax">TypenameInstruction::permissions_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</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><a href="4-tic2.html#SP6" class="function-link"><span class="function-syntax">InstanceInstruction::is</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</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><a href="4-tic2.html#SP6" class="function-link"><span class="function-syntax">InstanceInstruction::is</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FL</span><span class="plain-syntax"> = </span><a href="4-tic2.html#SP6" class="function-link"><span class="function-syntax">InstanceInstruction::permissions_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">FL</span><span class="plain-syntax"> = </span><a href="4-tic2.html#SP6" class="function-link"><span class="function-syntax">InstanceInstruction::permissions_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</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">else</span><span class="plain-syntax"> {</span>
@ -191,13 +191,13 @@ messages if we report early.
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_node_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FL</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_node_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::is</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">)) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-ttc.html#SP10" class="function-link"><span class="function-syntax">TypenameInstruction::is</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</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-idt.html#SP21" class="function-link"><span class="function-syntax">InterTypes::is_enumerated</span></a><span class="plain-syntax">(</span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</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><a href="3-idt.html#SP21" class="function-link"><span class="function-syntax">InterTypes::is_enumerated</span></a><span class="plain-syntax">(</span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</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">E</span><span class="plain-syntax"> = </span><a href="3-ie.html#SP4" class="function-link"><span class="function-syntax">InterErrors::quoted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"not a kind which can have property values"</span><span class="plain-syntax">,</span> <span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-ie.html#SP4" class="function-link"><span class="function-syntax">InterErrors::quoted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"not a kind which can have property values"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">owner_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">owner_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</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="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FL</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::permissions_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">FL</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP6" class="function-link"><span class="function-syntax">TypenameInstruction::permissions_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</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><a href="4-tic2.html#SP6" class="function-link"><span class="function-syntax">InstanceInstruction::is</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</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><a href="4-tic2.html#SP6" class="function-link"><span class="function-syntax">InstanceInstruction::is</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FL</span><span class="plain-syntax"> = </span><a href="4-tic2.html#SP6" class="function-link"><span class="function-syntax">InstanceInstruction::permissions_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">FL</span><span class="plain-syntax"> = </span><a href="4-tic2.html#SP6" class="function-link"><span class="function-syntax">InstanceInstruction::permissions_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</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">else</span><span class="plain-syntax"> {</span>

View file

@ -111,7 +111,7 @@ a <span class="extract"><span class="extract-syntax">primitive</span></span> ins
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</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">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_1_data_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">PRIMITIVE_IST</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_1_data_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">PRIMITIVE_IST</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">DEFN_PRIM_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">prim_name</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">DEFN_PRIM_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">prim_name</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</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">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>

View file

@ -106,7 +106,7 @@ compulsory words <span class="extract"><span class="extract-syntax">ID_IFLD</spa
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_warehouse</span><span class="plain-syntax"> *</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::warehouse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_warehouse</span><span class="plain-syntax"> *</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::warehouse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_3_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">PROPERTY_IST</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_3_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">PROPERTY_IST</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">DEFN_PROP_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">prop_s</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">DEFN_PROP_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">prop_s</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">TYPE_PROP_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">prop_type</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">TYPE_PROP_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">prop_type</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">PERM_LIST_PROP_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-tw.html#SP10" class="function-link"><span class="function-syntax">InterWarehouse::create_node_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">PERM_LIST_PROP_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-tw.html#SP10" class="function-link"><span class="function-syntax">InterWarehouse::create_node_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span>

View file

@ -85,6 +85,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><a href="3-ic.html#SP4" class="function-link"><span class="function-syntax">InterInstruction::fix_instruction_length_between</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">6</span><span class="plain-syntax">, </span><span class="constant-syntax">6</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="3-ic.html#SP4" class="function-link"><span class="function-syntax">InterInstruction::fix_instruction_length_between</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">6</span><span class="plain-syntax">, </span><span class="constant-syntax">6</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-ic.html#SP3" class="function-link"><span class="function-syntax">InterInstruction::permit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">INSIDE_PLAIN_PACKAGE_ICUP</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="3-ic.html#SP3" class="function-link"><span class="function-syntax">InterInstruction::permit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">INSIDE_PLAIN_PACKAGE_ICUP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_READ_MTID</span><span class="plain-syntax">, </span><a href="4-tpc7.html#SP4" class="function-link"><span class="function-syntax">PropertyValueInstruction::read</span></a><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_READ_MTID</span><span class="plain-syntax">, </span><a href="4-tpc7.html#SP4" class="function-link"><span class="function-syntax">PropertyValueInstruction::read</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_TRANSPOSE_MTID</span><span class="plain-syntax">, </span><a href="4-tpc7.html#SP2" class="function-link"><span class="function-syntax">PropertyValueInstruction::transpose</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_VERIFY_MTID</span><span class="plain-syntax">, </span><a href="4-tpc7.html#SP3" class="function-link"><span class="function-syntax">PropertyValueInstruction::verify</span></a><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_VERIFY_MTID</span><span class="plain-syntax">, </span><a href="4-tpc7.html#SP3" class="function-link"><span class="function-syntax">PropertyValueInstruction::verify</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_WRITE_MTID</span><span class="plain-syntax">, </span><a href="4-tpc7.html#SP5" class="function-link"><span class="function-syntax">PropertyValueInstruction::write</span></a><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_WRITE_MTID</span><span class="plain-syntax">, </span><a href="4-tpc7.html#SP5" class="function-link"><span class="function-syntax">PropertyValueInstruction::write</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -103,8 +104,8 @@ compulsory words <span class="extract"><span class="extract-syntax">ID_IFLD</spa
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop_s</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop_s</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_4_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">PROPERTYVALUE_IST</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_4_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">PROPERTYVALUE_IST</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">PROP_PVAL_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">prop_s</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">PROP_PVAL_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">prop_s</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">OWNER_PVAL_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">OWNER_PVAL_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">VAL1_PVAL_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-ivp.html#SP22" class="function-link"><span class="function-syntax">InterValuePairs::to_word1</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">VAL1_PVAL_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-ivp.html#SP22" class="function-link"><span class="function-syntax">InterValuePairs::to_word1</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">VAL2_PVAL_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-ivp.html#SP22" class="function-link"><span class="function-syntax">InterValuePairs::to_word2</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">),</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">VAL2_PVAL_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-ivp.html#SP22" class="function-link"><span class="function-syntax">InterValuePairs::to_word2</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span>
@ -113,13 +114,19 @@ compulsory words <span class="extract"><span class="extract-syntax">ID_IFLD</spa
<span class="plain-syntax"> </span><a href="2-np.html#SP3" class="function-link"><span class="function-syntax">NodePlacement::move_to_moving_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-np.html#SP3" class="function-link"><span class="function-syntax">NodePlacement::move_to_moving_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</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">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">NULL</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">PropertyValueInstruction::transpose</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">PropertyValueInstruction::transpose</span></span>:<br/><a href="4-tpc7.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">grid</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">grid_extent</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="3-ivp.html#SP21" class="function-link"><span class="function-syntax">InterValuePairs::set</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_PVAL_IFLD</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="3-ivp.html#SP23" class="function-link"><span class="function-syntax">InterValuePairs::transpose</span></a><span class="plain-syntax">(</span><a href="3-ivp.html#SP21" class="function-link"><span class="function-syntax">InterValuePairs::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_PVAL_IFLD</span><span class="plain-syntax">), </span><span class="identifier-syntax">grid</span><span class="plain-syntax">, </span><span class="identifier-syntax">grid_extent</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">));</span>
<span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>Verification begins with sanity checks, but then also adds the new property <p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>Verification begins with sanity checks, but then also adds the new property
value to the list of properties of the owner. value to the list of properties of the owner.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PropertyValueInstruction::verify</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">PropertyValueInstruction::verify</span></span>:<br/><a href="4-tpc7.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-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="function-syntax">PropertyValueInstruction::verify</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">PropertyValueInstruction::verify</span></span>:<br/><a href="4-tpc7.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</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">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP2" class="function-link"><span class="function-syntax">VerifyingInter::SID_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">PROP_PVAL_IFLD</span><span class="plain-syntax">, </span><span class="constant-syntax">PROPERTY_IST</span><span class="plain-syntax">);</span> <span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP2" class="function-link"><span class="function-syntax">VerifyingInter::SID_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">PROP_PVAL_IFLD</span><span class="plain-syntax">, </span><span class="constant-syntax">PROPERTY_IST</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
@ -141,8 +148,8 @@ value to the list of properties of the owner.
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_node_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FL</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_node_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::is</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">))</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-ttc.html#SP10" class="function-link"><span class="function-syntax">TypenameInstruction::is</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FL</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::properties_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">FL</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP6" class="function-link"><span class="function-syntax">TypenameInstruction::properties_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</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">else</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FL</span><span class="plain-syntax"> = </span><a href="4-tic2.html#SP6" class="function-link"><span class="function-syntax">InstanceInstruction::properties_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">FL</span><span class="plain-syntax"> = </span><a href="4-tic2.html#SP6" class="function-link"><span class="function-syntax">InstanceInstruction::properties_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</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">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">X</span><span class="plain-syntax">;</span>
@ -166,13 +173,13 @@ value to the list of properties of the owner.
<span class="plain-syntax"> </span><span class="identifier-syntax">owner</span><span class="plain-syntax"> = </span><a href="4-tic2.html#SP6" class="function-link"><span class="function-syntax">InstanceInstruction::typename</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">owner</span><span class="plain-syntax"> = </span><a href="4-tic2.html#SP6" class="function-link"><span class="function-syntax">InstanceInstruction::typename</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</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">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">owner</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">owner</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_node_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FL</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::permissions_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_node_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FL</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP6" class="function-link"><span class="function-syntax">TypenameInstruction::permissions_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</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">FL</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 permissions list"</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">FL</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 permissions list"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</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">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">X</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_INTER_NODE_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">FL</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_INTER_NODE_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">FL</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-tpc3.html#SP6" class="function-link"><span class="function-syntax">PermissionInstruction::property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">) == </span><span class="identifier-syntax">prop_s</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-tpc3.html#SP6" class="function-link"><span class="function-syntax">PermissionInstruction::property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">) == </span><span class="identifier-syntax">prop_s</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">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">owner</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::super</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">owner</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP6" class="function-link"><span class="function-syntax">TypenameInstruction::super</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</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">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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -180,7 +187,7 @@ value to the list of properties of the owner.
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. Creating from textual Inter syntax. </b></p> <p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. Creating from textual Inter syntax. </b></p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PropertyValueInstruction::read</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">PropertyValueInstruction::read</span></span>:<br/><a href="4-tpc7.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">,</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PropertyValueInstruction::read</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">PropertyValueInstruction::read</span></span>:<br/><a href="4-tpc7.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_line_parse</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_line_parse</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</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">prop_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0], *</span><span class="identifier-syntax">owner_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[1];</span> <span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0], *</span><span class="identifier-syntax">owner_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[1];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop_s</span><span class="plain-syntax"> = </span><a href="3-iitf.html#SP5" class="function-link"><span class="function-syntax">TextualInter::find_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">prop_name</span><span class="plain-syntax">, </span><span class="constant-syntax">PROPERTY_IST</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop_s</span><span class="plain-syntax"> = </span><a href="3-iitf.html#SP5" class="function-link"><span class="function-syntax">TextualInter::find_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">prop_name</span><span class="plain-syntax">, </span><span class="constant-syntax">PROPERTY_IST</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
@ -198,7 +205,7 @@ value to the list of properties of the owner.
<span class="plain-syntax"> (</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indent_level</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">);</span> <span class="plain-syntax"> (</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indent_level</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">PropertyValueInstruction::parse_owner</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">PropertyValueInstruction::parse_owner</span></span>:<br/>The Permission Construct - <a href="4-tpc3.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">,</span> <span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">PropertyValueInstruction::parse_owner</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">PropertyValueInstruction::parse_owner</span></span>:<br/>The Permission Construct - <a href="4-tpc3.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</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="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</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="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</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">E</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symb</span><span class="plain-syntax"> = </span><a href="2-st.html#SP6" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symb</span><span class="plain-syntax"> = </span><a href="2-st.html#SP6" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
@ -222,7 +229,7 @@ value to the list of properties of the owner.
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. Writing to textual Inter syntax. </b></p> <p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. Writing to textual Inter syntax. </b></p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PropertyValueInstruction::write</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">PropertyValueInstruction::write</span></span>:<br/><a href="4-tpc7.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-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="function-syntax">PropertyValueInstruction::write</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">PropertyValueInstruction::write</span></span>:<br/><a href="4-tpc7.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</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">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop_s</span><span class="plain-syntax"> = </span><a href="4-tpc7.html#SP6" class="function-link"><span class="function-syntax">PropertyValueInstruction::property</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop_s</span><span class="plain-syntax"> = </span><a href="4-tpc7.html#SP6" class="function-link"><span class="function-syntax">PropertyValueInstruction::property</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax"> = </span><a href="4-tpc7.html#SP6" class="function-link"><span class="function-syntax">PropertyValueInstruction::owner</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax"> = </span><a href="4-tpc7.html#SP6" class="function-link"><span class="function-syntax">PropertyValueInstruction::owner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
@ -234,19 +241,19 @@ value to the list of properties of the owner.
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. Access functions. </b></p> <p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. Access functions. </b></p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">PropertyValueInstruction::property</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">PropertyValueInstruction::property</span></span>:<br/><a href="4-tpc7.html#SP3">&#167;3</a>, <a href="4-tpc7.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="reserved-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">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">PropertyValueInstruction::property</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">PropertyValueInstruction::property</span></span>:<br/><a href="4-tpc7.html#SP3">&#167;3</a>, <a href="4-tpc7.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_tree_node</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">P</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">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="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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">ID_IFLD</span><span class="plain-syntax">] != </span><span class="constant-syntax">PROPERTYVALUE_IST</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">ID_IFLD</span><span class="plain-syntax">] != </span><span class="constant-syntax">PROPERTYVALUE_IST</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><a href="2-st.html#SP13" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID_at_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">PROP_PVAL_IFLD</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-st.html#SP13" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID_at_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">PROP_PVAL_IFLD</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">PropertyValueInstruction::owner</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">PropertyValueInstruction::owner</span></span>:<br/><a href="4-tpc7.html#SP3">&#167;3</a>, <a href="4-tpc7.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="reserved-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">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">PropertyValueInstruction::owner</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">PropertyValueInstruction::owner</span></span>:<br/><a href="4-tpc7.html#SP3">&#167;3</a>, <a href="4-tpc7.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_tree_node</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">P</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">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="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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">ID_IFLD</span><span class="plain-syntax">] != </span><span class="constant-syntax">PROPERTYVALUE_IST</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">ID_IFLD</span><span class="plain-syntax">] != </span><span class="constant-syntax">PROPERTYVALUE_IST</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><a href="2-st.html#SP13" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID_at_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">OWNER_PVAL_IFLD</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-st.html#SP13" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID_at_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">OWNER_PVAL_IFLD</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="function-syntax">PropertyValueInstruction::value</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">PropertyValueInstruction::value</span></span>:<br/><a href="4-tpc7.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="reserved-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">inter_pair</span><span class="plain-syntax"> </span><span class="function-syntax">PropertyValueInstruction::value</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">PropertyValueInstruction::value</span></span>:<br/><a href="4-tpc7.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_tree_node</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">P</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><a href="3-ivp.html#SP19" class="function-link"><span class="function-syntax">InterValuePairs::undef</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">P</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><a href="3-ivp.html#SP19" class="function-link"><span class="function-syntax">InterValuePairs::undef</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">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">ID_IFLD</span><span class="plain-syntax">] != </span><span class="constant-syntax">PROPERTYVALUE_IST</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-ivp.html#SP19" class="function-link"><span class="function-syntax">InterValuePairs::undef</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">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">ID_IFLD</span><span class="plain-syntax">] != </span><span class="constant-syntax">PROPERTYVALUE_IST</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-ivp.html#SP19" class="function-link"><span class="function-syntax">InterValuePairs::undef</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-ivp.html#SP21" class="function-link"><span class="function-syntax">InterValuePairs::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_PVAL_IFLD</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-ivp.html#SP21" class="function-link"><span class="function-syntax">InterValuePairs::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_PVAL_IFLD</span><span class="plain-syntax">);</span>

View file

@ -73,21 +73,28 @@ function togglePopup(material_id) {
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">bytecode</a></li><li><a href="index.html#4">Chapter 4: Void Constructs</a></li><li><b>The Typename Construct</b></li></ul></div> <ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">bytecode</a></li><li><a href="index.html#4">Chapter 4: Void Constructs</a></li><li><b>The Typename Construct</b></li></ul></div>
<p class="purpose">Defining the typename construct.</p> <p class="purpose">Defining the typename construct.</p>
<ul class="toc"><li><a href="4-ttc.html#SP1">&#167;1. Definition</a></li><li><a href="4-ttc.html#SP2">&#167;2. Instructions</a></li><li><a href="4-ttc.html#SP4">&#167;4. Creating from textual Inter syntax</a></li><li><a href="4-ttc.html#SP5">&#167;5. Writing to textual Inter syntax</a></li><li><a href="4-ttc.html#SP6">&#167;6. Access functions</a></li><li><a href="4-ttc.html#SP10">&#167;10. Two tests</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Definition. </b>For what this does and why it is used, see <a href="../inter/M-ti.html" class="internal">Textual Inter (in inter)</a>.
</p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::define_construct</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">TypenameInstruction::define_construct</span></span>:<br/>Inter Constructs - <a href="3-ic.html#SP15">&#167;15</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">TypenameInstruction::define_construct</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">TypenameInstruction::define_construct</span></span>:<br/>Inter Constructs - <a href="3-ic.html#SP15">&#167;15</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">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax"> = </span><a href="3-ic.html#SP1" class="function-link"><span class="function-syntax">InterInstruction::create_construct</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TYPENAME_IST</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"typename"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax"> = </span><a href="3-ic.html#SP1" class="function-link"><span class="function-syntax">InterInstruction::create_construct</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TYPENAME_IST</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"typename"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-ic.html#SP2" class="function-link"><span class="function-syntax">InterInstruction::defines_symbol_in_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">DEFN_TYPENAME_IFLD</span><span class="plain-syntax">, -1);</span> <span class="plain-syntax"> </span><a href="3-ic.html#SP2" class="function-link"><span class="function-syntax">InterInstruction::defines_symbol_in_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">DEFN_TYPENAME_IFLD</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><a href="3-ic.html#SP8" class="function-link"><span class="function-syntax">InterInstruction::specify_syntax</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"typename IDENTIFIER TOKEN TOKENS"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="3-ic.html#SP8" class="function-link"><span class="function-syntax">InterInstruction::specify_syntax</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"typename IDENTIFIER TOKEN TOKENS"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-ic.html#SP4" class="function-link"><span class="function-syntax">InterInstruction::fix_instruction_length_between</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><a href="3-ic.html#SP4" class="function-link"><span class="function-syntax">InterInstruction::fix_instruction_length_between</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">9</span><span class="plain-syntax">, </span><span class="constant-syntax">UNLIMITED_INSTRUCTION_FRAME_LENGTH</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="constant-syntax">MIN_EXTENT_TYPENAME_IFR</span><span class="plain-syntax">, </span><span class="constant-syntax">UNLIMITED_INSTRUCTION_FRAME_LENGTH</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-ic.html#SP3" class="function-link"><span class="function-syntax">InterInstruction::permit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">INSIDE_PLAIN_PACKAGE_ICUP</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="3-ic.html#SP3" class="function-link"><span class="function-syntax">InterInstruction::permit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">INSIDE_PLAIN_PACKAGE_ICUP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_READ_MTID</span><span class="plain-syntax">, </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::read</span></a><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_READ_MTID</span><span class="plain-syntax">, </span><a href="4-ttc.html#SP4" class="function-link"><span class="function-syntax">TypenameInstruction::read</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_TRANSPOSE_MTID</span><span class="plain-syntax">, </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::transpose</span></a><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_TRANSPOSE_MTID</span><span class="plain-syntax">, </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::transpose</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_VERIFY_MTID</span><span class="plain-syntax">, </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::verify</span></a><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_VERIFY_MTID</span><span class="plain-syntax">, </span><a href="4-ttc.html#SP3" class="function-link"><span class="function-syntax">TypenameInstruction::verify</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_WRITE_MTID</span><span class="plain-syntax">, </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::write</span></a><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_WRITE_MTID</span><span class="plain-syntax">, </span><a href="4-ttc.html#SP5" class="function-link"><span class="function-syntax">TypenameInstruction::write</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b></p> <p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. Instructions. </b>In bytecode, the frame of a <span class="extract"><span class="extract-syntax">typename</span></span> instruction is laid out with the two
compulsory words <span class="extract"><span class="extract-syntax">ID_IFLD</span></span> and <span class="extract"><span class="extract-syntax">LEVEL_IFLD</span></span>, followed by these. The eventual
length is flexible: there can be any number of operands from 0 upwards.
</p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">DEFN_TYPENAME_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span> <pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">DEFN_TYPENAME_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">ENUM_RANGE_TYPENAME_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">3</span> <span class="definition-keyword">define</span> <span class="constant-syntax">ENUM_RANGE_TYPENAME_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">3</span>
@ -97,79 +104,71 @@ function togglePopup(material_id) {
<span class="definition-keyword">define</span> <span class="constant-syntax">PLIST_TYPENAME_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">7</span> <span class="definition-keyword">define</span> <span class="constant-syntax">PLIST_TYPENAME_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">7</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">CONSTRUCTOR_TYPENAME_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">8</span> <span class="definition-keyword">define</span> <span class="constant-syntax">CONSTRUCTOR_TYPENAME_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">8</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">OPERANDS_TYPENAME_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">9</span> <span class="definition-keyword">define</span> <span class="constant-syntax">OPERANDS_TYPENAME_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">9</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">MIN_EXTENT_TYPENAME_IFR</span><span class="plain-syntax"> </span><span class="constant-syntax">9</span>
</pre> </pre>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::read</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">TypenameInstruction::read</span></span>:<br/><a href="4-ttc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_line_parse</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">TypenameInstruction::new</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">TypenameInstruction::new</span></span>:<br/><a href="4-ttc.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symb</span><span class="plain-syntax"> = </span><a href="3-iitf.html#SP4" class="function-link"><span class="function-syntax">TextualInter::new_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">constructor</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">super_s</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_semisimple_type_description</span><span class="plain-syntax"> </span><span class="identifier-syntax">parsed_description</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="3-idt.html#SP16" class="function-link"><span class="function-syntax">InterTypes::initialise_isstd</span></a><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">parsed_description</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">super_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">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[1], </span><span class="identifier-syntax">I</span><span class="string-syntax">"&lt;="</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">super_s</span><span class="plain-syntax"> = </span><a href="3-iitf.html#SP5" class="function-link"><span class="function-syntax">TextualInter::find_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[2], </span><span class="constant-syntax">TYPENAME_IST</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="3-idt.html#SP21" class="function-link"><span class="function-syntax">InterTypes::is_enumerated</span></a><span class="plain-syntax">(</span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">super_s</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">E</span><span class="plain-syntax"> = </span><a href="3-ie.html#SP4" class="function-link"><span class="function-syntax">InterErrors::quoted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"not a type which can have subtypes"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[2], </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">; }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parsed_description</span><span class="plain-syntax">.</span><span class="element-syntax">constructor_code</span><span class="plain-syntax"> = </span><span class="constant-syntax">ENUM_ITCONC</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parsed_description</span><span class="plain-syntax">.</span><span class="element-syntax">arity</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">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[1], </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">E</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP17" class="function-link"><span class="function-syntax">InterTypes::parse_semisimple</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[2], </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">parsed_description</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">E</span><span class="plain-syntax"> = </span><a href="3-ie.html#SP4" class="function-link"><span class="function-syntax">InterErrors::quoted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"expected '=' or '&lt;='"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[1], </span><span class="identifier-syntax">eloc</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">E</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">E</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">symb</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parsed_description</span><span class="plain-syntax">.</span><span class="element-syntax">constructor_code</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">super_s</span><span class="plain-syntax">)?(</span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">super_s</span><span class="plain-syntax">)):0,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parsed_description</span><span class="plain-syntax">.</span><span class="element-syntax">arity</span><span class="plain-syntax">, </span><span class="identifier-syntax">parsed_description</span><span class="plain-syntax">.</span><span class="element-syntax">operand_TIDs</span><span class="plain-syntax">, (</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indent_level</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-idt.html#SP16_1" class="function-link"><span class="function-syntax">InterTypes::dispose_of_isstd</span></a><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">parsed_description</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">TypenameInstruction::new</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">SID</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">constructor</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">SUP</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">arity</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">operands</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</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">arity</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">operands</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</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-idt.html#SP2" class="function-link"><span class="function-syntax">InterTypes::is_valid_constructor_code</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">constructor</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span> <span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">super_SID</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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"constructor out of range"</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">super_s</span><span class="plain-syntax">) </span><span class="identifier-syntax">super_SID</span><span class="plain-syntax"> = </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">super_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_warehouse</span><span class="plain-syntax"> *</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::warehouse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_warehouse</span><span class="plain-syntax"> *</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax"> = </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::warehouse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">L1</span><span class="plain-syntax"> = </span><a href="2-tw.html#SP10" class="function-link"><span class="function-syntax">InterWarehouse::create_node_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax">, </span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_7_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">TYPENAME_IST</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">L2</span><span class="plain-syntax"> = </span><a href="2-tw.html#SP10" class="function-link"><span class="function-syntax">InterWarehouse::create_node_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax">, </span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">));</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">DEFN_TYPENAME_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_7_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">,</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">ENUM_RANGE_TYPENAME_IFLD:</span><span class="plain-syntax"> */ </span><span class="constant-syntax">0</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="constant-syntax">TYPENAME_IST</span><span class="plain-syntax">, </span><span class="identifier-syntax">SID</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">SUP</span><span class="plain-syntax">, </span><span class="identifier-syntax">L1</span><span class="plain-syntax">, </span><span class="identifier-syntax">L2</span><span class="plain-syntax">,</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">NO_INSTANCES_TYPENAME_IFLD:</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">constructor</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">SUPER_TYPENAME_IFLD:</span><span class="plain-syntax"> */ </span><span class="identifier-syntax">super_SID</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">PERM_LIST_TYPENAME_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-tw.html#SP10" class="function-link"><span class="function-syntax">InterWarehouse::create_node_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">PLIST_TYPENAME_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-tw.html#SP10" class="function-link"><span class="function-syntax">InterWarehouse::create_node_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> /* </span><span class="identifier-syntax">CONSTRUCTOR_TYPENAME_IFLD:</span><span class="plain-syntax"> */ </span><span class="identifier-syntax">constructor</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</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">arity</span><span class="plain-syntax"> &gt; </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">arity</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-in.html#SP12" class="function-link"><span class="function-syntax">Inode::extend_instruction_by</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, (</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">arity</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-in.html#SP12" class="function-link"><span class="function-syntax">Inode::extend_instruction_by</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, (</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">arity</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">&lt;</span><span class="identifier-syntax">arity</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">OPERANDS_TYPENAME_IFLD</span><span class="plain-syntax">+</span><span class="identifier-syntax">i</span><span class="plain-syntax">] = </span><span class="identifier-syntax">operands</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">&lt;</span><span class="identifier-syntax">arity</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">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">OPERANDS_TYPENAME_IFLD</span><span class="plain-syntax">+</span><span class="identifier-syntax">i</span><span class="plain-syntax">] = </span><span class="identifier-syntax">operands</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">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">); </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-np.html#SP3" class="function-link"><span class="function-syntax">NodePlacement::move_to_moving_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-np.html#SP3" class="function-link"><span class="function-syntax">NodePlacement::move_to_moving_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</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">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">NULL</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">TypenameInstruction::transpose</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">TypenameInstruction::transpose</span></span>:<br/><a href="4-ttc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">grid</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">grid_extent</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::transpose</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">TypenameInstruction::transpose</span></span>:<br/><a href="4-ttc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">grid</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">grid_extent</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PERM_LIST_TYPENAME_IFLD</span><span class="plain-syntax">] = </span><span class="identifier-syntax">grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PERM_LIST_TYPENAME_IFLD</span><span class="plain-syntax">]];</span> <span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PERM_LIST_TYPENAME_IFLD</span><span class="plain-syntax">] = </span><span class="identifier-syntax">grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PERM_LIST_TYPENAME_IFLD</span><span class="plain-syntax">]];</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PLIST_TYPENAME_IFLD</span><span class="plain-syntax">] = </span><span class="identifier-syntax">grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PLIST_TYPENAME_IFLD</span><span class="plain-syntax">]];</span> <span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PLIST_TYPENAME_IFLD</span><span class="plain-syntax">] = </span><span class="identifier-syntax">grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PLIST_TYPENAME_IFLD</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>&#167;3. </b>Verification consists only of sanity checks.
</p>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::verify</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">TypenameInstruction::verify</span></span>:<br/><a href="4-ttc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-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">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span> <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">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">ENUM_RANGE_TYPENAME_IFLD</span><span class="plain-syntax">] != </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::verify</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">TypenameInstruction::verify</span></span>:<br/><a href="4-ttc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax"> = </span><a href="2-st.html#SP12" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID</span></a><span class="plain-syntax">(</span><a href="2-pck.html#SP10" class="function-link"><span class="function-syntax">InterPackage::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">DEFN_TYPENAME_IFLD</span><span class="plain-syntax">]);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</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">typename_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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP6" class="function-link"><span class="function-syntax">TypenameInstruction::typename</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> (</span><a href="3-idt.html#SP21" class="function-link"><span class="function-syntax">InterTypes::is_enumerated</span></a><span class="plain-syntax">(</span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">ENUM_RANGE_TYPENAME_IFLD</span><span class="plain-syntax">] &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> { *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="2-in.html#SP15" class="function-link"><span class="function-syntax">Inode::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"spurious extent in non-enumeration"</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="plain-syntax"> (</span><a href="3-idt.html#SP21" class="function-link"><span class="function-syntax">InterTypes::is_enumerated</span></a><span class="plain-syntax">(</span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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">E</span><span class="plain-syntax"> = </span><a href="2-in.html#SP15" class="function-link"><span class="function-syntax">Inode::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"spurious extent in non-enumeration"</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="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">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">SUPER_TYPENAME_IFLD</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">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">SUPER_TYPENAME_IFLD</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">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP2" class="function-link"><span class="function-syntax">VerifyingInter::SID_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">SUPER_TYPENAME_IFLD</span><span class="plain-syntax">, </span><span class="constant-syntax">TYPENAME_IST</span><span class="plain-syntax">); </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span> <span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP2" class="function-link"><span class="function-syntax">VerifyingInter::SID_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">SUPER_TYPENAME_IFLD</span><span class="plain-syntax">, </span><span class="constant-syntax">TYPENAME_IST</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">super_s</span><span class="plain-syntax"> = </span><a href="2-st.html#SP12" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID</span></a><span class="plain-syntax">(</span><a href="2-pck.html#SP10" class="function-link"><span class="function-syntax">InterPackage::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">SUPER_TYPENAME_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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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-idt.html#SP21" class="function-link"><span class="function-syntax">InterTypes::is_enumerated</span></a><span class="plain-syntax">(</span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">super_s</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">super_s</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP6" class="function-link"><span class="function-syntax">TypenameInstruction::super</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> { *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="2-in.html#SP15" class="function-link"><span class="function-syntax">Inode::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"subtype of nonenumerated type"</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-idt.html#SP21" class="function-link"><span class="function-syntax">InterTypes::is_enumerated</span></a><span class="plain-syntax">(</span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">super_s</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">E</span><span class="plain-syntax"> = </span><a href="2-in.html#SP15" class="function-link"><span class="function-syntax">Inode::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"subtype of nonenumerated type"</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="plain-syntax"> }</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP5" class="function-link"><span class="function-syntax">VerifyingInter::constructor_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCTOR_TYPENAME_IFLD</span><span class="plain-syntax">); </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span> <span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP8" class="function-link"><span class="function-syntax">VerifyingInter::node_list_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">PERM_LIST_TYPENAME_IFLD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_constructor_code</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">CONSTRUCTOR_TYPENAME_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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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">arity</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax"> - </span><span class="constant-syntax">MIN_EXTENT_TYPENAME_IFR</span><span class="plain-syntax">;</span> <span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP8" class="function-link"><span class="function-syntax">VerifyingInter::node_list_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">PLIST_TYPENAME_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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP5" class="function-link"><span class="function-syntax">VerifyingInter::constructor_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCTOR_TYPENAME_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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_constructor_code</span></a><span class="plain-syntax">(</span><a href="4-ttc.html#SP7" class="function-link"><span class="function-syntax">TypenameInstruction::constructor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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">arity</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax"> - </span><span class="constant-syntax">OPERANDS_TYPENAME_IFLD</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">&lt;</span><span class="identifier-syntax">arity</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">&lt;</span><span class="identifier-syntax">arity</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">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP6" class="function-link"><span class="function-syntax">VerifyingInter::TID_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">OPERANDS_TYPENAME_IFLD</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">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP6" class="function-link"><span class="function-syntax">VerifyingInter::TID_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">OPERANDS_TYPENAME_IFLD</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
@ -182,43 +181,143 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">return</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="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. Creating from textual Inter syntax. </b></p>
<span class="reserved-syntax">inter_node_list</span><span class="plain-syntax"> *</span><span class="function-syntax">TypenameInstruction::permissions_list</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">TypenameInstruction::permissions_list</span></span>:<br/>The Permission Construct - <a href="4-tpc3.html#SP3">&#167;3</a>, <a href="4-tpc3.html#SP4">&#167;4</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">) {</span> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::read</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">TypenameInstruction::read</span></span>:<br/><a href="4-ttc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_line_parse</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</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">typename_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0];</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">operator_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[1];</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">defn_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[2];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symb</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="3-iitf.html#SP4" class="function-link"><span class="function-syntax">TextualInter::new_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">typename_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_semisimple_type_description</span><span class="plain-syntax"> </span><span class="identifier-syntax">parsed_description</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="3-idt.html#SP16" class="function-link"><span class="function-syntax">InterTypes::initialise_isstd</span></a><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">parsed_description</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">super_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">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">operator_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"&lt;="</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">super_s</span><span class="plain-syntax"> = </span><a href="3-iitf.html#SP5" class="function-link"><span class="function-syntax">TextualInter::find_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">defn_text</span><span class="plain-syntax">, </span><span class="constant-syntax">TYPENAME_IST</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="3-idt.html#SP21" class="function-link"><span class="function-syntax">InterTypes::is_enumerated</span></a><span class="plain-syntax">(</span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">super_s</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">E</span><span class="plain-syntax"> = </span><a href="3-ie.html#SP4" class="function-link"><span class="function-syntax">InterErrors::quoted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"not a type which can have subtypes"</span><span class="plain-syntax">, </span><span class="identifier-syntax">defn_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</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">parsed_description</span><span class="plain-syntax">.</span><span class="element-syntax">constructor_code</span><span class="plain-syntax"> = </span><span class="constant-syntax">ENUM_ITCONC</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parsed_description</span><span class="plain-syntax">.</span><span class="element-syntax">arity</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">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">operator_text</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">E</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP17" class="function-link"><span class="function-syntax">InterTypes::parse_semisimple</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[2], </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">parsed_description</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">E</span><span class="plain-syntax"> = </span><a href="3-ie.html#SP4" class="function-link"><span class="function-syntax">InterErrors::quoted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"expected '=' or '&lt;='"</span><span class="plain-syntax">, </span><span class="identifier-syntax">operator_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</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">E</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">E</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">symb</span><span class="plain-syntax">, </span><span class="identifier-syntax">parsed_description</span><span class="plain-syntax">.</span><span class="element-syntax">constructor_code</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">super_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">parsed_description</span><span class="plain-syntax">.</span><span class="element-syntax">arity</span><span class="plain-syntax">, </span><span class="identifier-syntax">parsed_description</span><span class="plain-syntax">.</span><span class="element-syntax">operand_TIDs</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indent_level</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-idt.html#SP16_1" class="function-link"><span class="function-syntax">InterTypes::dispose_of_isstd</span></a><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">parsed_description</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. Writing to textual Inter syntax. </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">TypenameInstruction::write</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">TypenameInstruction::write</span></span>:<br/><a href="4-ttc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</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">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP6" class="function-link"><span class="function-syntax">TypenameInstruction::typename</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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"typename %S "</span><span class="plain-syntax">, </span><a href="2-sym.html#SP19" class="function-link"><span class="function-syntax">InterSymbol::identifier</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">super</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP6" class="function-link"><span class="function-syntax">TypenameInstruction::super</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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">super</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">"&lt;= %S"</span><span class="plain-syntax">, </span><a href="2-sym.html#SP19" class="function-link"><span class="function-syntax">InterSymbol::identifier</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">super</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">"= "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-idt.html#SP19" class="function-link"><span class="function-syntax">InterTypes::write_typename_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="2-ann.html#SP14" class="function-link"><span class="function-syntax">SymbolAnnotation::write_annotations</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. Access functions. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">TypenameInstruction::typename</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">TypenameInstruction::typename</span></span>:<br/><a href="4-ttc.html#SP3">&#167;3</a>, <a href="4-ttc.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_tree_node</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">P</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">ID_IFLD</span><span class="plain-syntax">] != </span><span class="constant-syntax">TYPENAME_IST</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><a href="2-st.html#SP13" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID_at_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">DEFN_TYPENAME_IFLD</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">TypenameInstruction::super</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">TypenameInstruction::super</span></span>:<br/><a href="4-ttc.html#SP3">&#167;3</a>, <a href="4-ttc.html#SP5">&#167;5</a>, <a href="4-ttc.html#SP9">&#167;9</a>, <a href="4-ttc.html#SP10">&#167;10</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</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">typename_s</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">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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="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><a href="2-st.html#SP13" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID_at_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="constant-syntax">SUPER_TYPENAME_IFLD</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_node_list</span><span class="plain-syntax"> *</span><span class="function-syntax">TypenameInstruction::permissions_list</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">TypenameInstruction::permissions_list</span></span>:<br/>The Permission Construct - <a href="4-tpc3.html#SP3">&#167;3</a>, <a href="4-tpc3.html#SP4">&#167;4</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</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">typename_s</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">typename_s</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">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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="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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">D</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><a href="2-in.html#SP14" class="function-link"><span class="function-syntax">Inode::ID_to_frame_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PERM_LIST_TYPENAME_IFLD</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-in.html#SP14" class="function-link"><span class="function-syntax">Inode::ID_to_frame_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PERM_LIST_TYPENAME_IFLD</span><span class="plain-syntax">]);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_node_list</span><span class="plain-syntax"> *</span><span class="function-syntax">TypenameInstruction::properties_list</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">TypenameInstruction::properties_list</span></span>:<br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inst_s</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_node_list</span><span class="plain-syntax"> *</span><span class="function-syntax">TypenameInstruction::properties_list</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">TypenameInstruction::properties_list</span></span>:<br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</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">inst_s</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">typename_s</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">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inst_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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="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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">D</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><a href="2-in.html#SP14" class="function-link"><span class="function-syntax">Inode::ID_to_frame_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PLIST_TYPENAME_IFLD</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-in.html#SP14" class="function-link"><span class="function-syntax">Inode::ID_to_frame_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">PLIST_TYPENAME_IFLD</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>&#167;7. </b>The definition of the semisimple type:
</p>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::write</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">TypenameInstruction::write</span></span>:<br/><a href="4-ttc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-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">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symb</span><span class="plain-syntax"> = </span><a href="2-st.html#SP13" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID_at_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">DEFN_TYPENAME_IFLD</span><span class="plain-syntax">);</span> <span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::constructor</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">TypenameInstruction::constructor</span></span>:<br/><a href="4-ttc.html#SP3">&#167;3</a><br/>Inter Data Types - <a href="3-idt.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</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">symb</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">typename_s</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="constant-syntax">UNCHECKED_ITCONC</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">"typename %S "</span><span class="plain-syntax">, </span><a href="2-sym.html#SP19" class="function-link"><span class="function-syntax">InterSymbol::identifier</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">symb</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">SUPER_TYPENAME_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">D</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="constant-syntax">UNCHECKED_ITCONC</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">super</span><span class="plain-syntax"> = </span><a href="2-st.html#SP13" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID_at_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">SUPER_TYPENAME_IFLD</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">D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">CONSTRUCTOR_TYPENAME_IFLD</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">"&lt;= %S"</span><span class="plain-syntax">, </span><a href="2-sym.html#SP19" class="function-link"><span class="function-syntax">InterSymbol::identifier</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">super</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">"= "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-idt.html#SP19" class="function-link"><span class="function-syntax">InterTypes::write_typename_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">symb</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">E</span><span class="plain-syntax"> = </span><a href="2-in.html#SP15" class="function-link"><span class="function-syntax">Inode::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"cannot write typename"</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="plain-syntax"> </span><a href="2-ann.html#SP14" class="function-link"><span class="function-syntax">SymbolAnnotation::write_annotations</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">symb</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">TypenameInstruction::new_instance</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">TypenameInstruction::new_instance</span></span>:<br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inst_name</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::arity</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">TypenameInstruction::arity</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</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">typename_s</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="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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="identifier-syntax">NULL</span><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><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax"> - </span><span class="constant-syntax">OPERANDS_TYPENAME_IFLD</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::operand_type</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">TypenameInstruction::operand_type</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">typename_s</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><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::unchecked</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::unchecked</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">i</span><span class="plain-syntax"> &gt;= </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax"> - </span><span class="constant-syntax">OPERANDS_TYPENAME_IFLD</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::unchecked</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">TID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">OPERANDS_TYPENAME_IFLD</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">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="2-pck.html#SP12" class="function-link"><span class="function-syntax">InterPackage::scope_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</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-idt.html#SP14" class="function-link"><span class="function-syntax">InterTypes::from_TID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">TID</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>&#167;8. </b>Enumeration counter, relevant only when the typename is enumerated:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::next_enumerated_value</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">TypenameInstruction::next_enumerated_value</span></span>:<br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</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">typename_s</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="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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="identifier-syntax">NULL</span><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><span class="reserved-syntax">return</span><span class="plain-syntax"> ++(</span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">ENUM_RANGE_TYPENAME_IFLD</span><span class="plain-syntax">]);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. </b>For an enumerated typename, if a new instance is created, this is called:
</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">TypenameInstruction::new_instance</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">TypenameInstruction::new_instance</span></span>:<br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inst_name</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">typename_s</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">typename_s</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="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">NO_INSTANCES_TYPENAME_IFLD</span><span class="plain-syntax">]++;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">NO_INSTANCES_TYPENAME_IFLD</span><span class="plain-syntax">]++;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::super</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP6" class="function-link"><span class="function-syntax">TypenameInstruction::super</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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">) </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::new_instance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">inst_name</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">) </span><a href="4-ttc.html#SP9" class="function-link"><span class="function-syntax">TypenameInstruction::new_instance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">inst_name</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">TypenameInstruction::instance_count</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::instance_count</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">) {</span>
@ -227,46 +326,11 @@ function togglePopup(material_id) {
<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="identifier-syntax">NULL</span><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><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">D</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="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">NO_INSTANCES_TYPENAME_IFLD</span><span class="plain-syntax">];</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">NO_INSTANCES_TYPENAME_IFLD</span><span class="plain-syntax">];</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. Two tests. </b></p>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::arity</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">TypenameInstruction::arity</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">) {</span> <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">typename_s</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="constant-syntax">0</span><span class="plain-syntax">;</span> <span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::is</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">TypenameInstruction::is</span></span>:<br/>The Permission Construct - <a href="4-tpc3.html#SP3">&#167;3</a>, <a href="4-tpc3.html#SP4">&#167;4</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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="identifier-syntax">NULL</span><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><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax"> - </span><span class="constant-syntax">MIN_EXTENT_TYPENAME_IFR</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::operand_type</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">TypenameInstruction::operand_type</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">typename_s</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><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::unchecked</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::unchecked</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">i</span><span class="plain-syntax"> &gt;= </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax"> - </span><span class="constant-syntax">MIN_EXTENT_TYPENAME_IFR</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::unchecked</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">TID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">OPERANDS_TYPENAME_IFLD</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">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="2-pck.html#SP12" class="function-link"><span class="function-syntax">InterPackage::scope_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</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-idt.html#SP14" class="function-link"><span class="function-syntax">InterTypes::from_TID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">TID</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::constructor</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">TypenameInstruction::constructor</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</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">typename_s</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="constant-syntax">UNCHECKED_ITCONC</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">UNCHECKED_ITCONC</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">D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">CONSTRUCTOR_TYPENAME_IFLD</span><span class="plain-syntax">];</span>
<span class="plain-syntax">}</span>
<span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::next_enumerated_value</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">TypenameInstruction::next_enumerated_value</span></span>:<br/>The Instance Construct - <a href="4-tic2.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</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">typename_s</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="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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="identifier-syntax">NULL</span><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><span class="reserved-syntax">return</span><span class="plain-syntax"> ++(</span><span class="identifier-syntax">D</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">ENUM_RANGE_TYPENAME_IFLD</span><span class="plain-syntax">]);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">TypenameInstruction::super</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">TypenameInstruction::super</span></span>:<br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</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">typename_s</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">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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="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><a href="2-st.html#SP13" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID_at_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="constant-syntax">SUPER_TYPENAME_IFLD</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">TypenameInstruction::is</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">TypenameInstruction::is</span></span>:<br/>The Permission Construct - <a href="4-tpc3.html#SP3">&#167;3</a>, <a href="4-tpc3.html#SP4">&#167;4</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename_s</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">typename_s</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">typename_s</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="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename_s</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="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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">D</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>
@ -274,13 +338,14 @@ 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><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="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::is_a</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">TypenameInstruction::is_a</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP22_2">&#167;22.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename1_s</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename2_s</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TypenameInstruction::is_a</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">TypenameInstruction::is_a</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP22_2">&#167;22.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename1_s</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">typename2_s</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type1</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename1_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type1</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename1_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type2</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename2_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type2</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename2_s</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-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::is_unchecked</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type1</span><span class="plain-syntax">)) || (</span><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::is_unchecked</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type2</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">if</span><span class="plain-syntax"> ((</span><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::is_unchecked</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type1</span><span class="plain-syntax">)) || (</span><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::is_unchecked</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type2</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">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">typename1_s</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">typename1_s</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">typename1_s</span><span class="plain-syntax"> == </span><span class="identifier-syntax">typename2_s</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">typename1_s</span><span class="plain-syntax"> == </span><span class="identifier-syntax">typename2_s</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">typename1_s</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP2" class="function-link"><span class="function-syntax">TypenameInstruction::super</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename1_s</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">typename1_s</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP6" class="function-link"><span class="function-syntax">TypenameInstruction::super</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">typename1_s</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">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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>

View file

@ -73,76 +73,122 @@ function togglePopup(material_id) {
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">bytecode</a></li><li><a href="index.html#4">Chapter 4: Void Constructs</a></li><li><b>The Variable Construct</b></li></ul></div> <ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">bytecode</a></li><li><a href="index.html#4">Chapter 4: Void Constructs</a></li><li><b>The Variable Construct</b></li></ul></div>
<p class="purpose">Defining the variable construct.</p> <p class="purpose">Defining the variable construct.</p>
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b></p> <ul class="toc"><li><a href="4-tvc.html#SP1">&#167;1. Definition</a></li><li><a href="4-tvc.html#SP2">&#167;2. Instructions</a></li><li><a href="4-tvc.html#SP4">&#167;4. Creating from textual Inter syntax</a></li><li><a href="4-tvc.html#SP5">&#167;5. Writing to textual Inter syntax</a></li><li><a href="4-tvc.html#SP6">&#167;6. Access functions</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Definition. </b>For what this does and why it is used, see <a href="../inter/M-ti.html" class="internal">Textual Inter (in inter)</a>.
</p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">VariableInstruction::define_construct</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">VariableInstruction::define_construct</span></span>:<br/>Inter Constructs - <a href="3-ic.html#SP15">&#167;15</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">VariableInstruction::define_construct</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">VariableInstruction::define_construct</span></span>:<br/>Inter Constructs - <a href="3-ic.html#SP15">&#167;15</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">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax"> = </span><a href="3-ic.html#SP1" class="function-link"><span class="function-syntax">InterInstruction::create_construct</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VARIABLE_IST</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"variable"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax"> = </span><a href="3-ic.html#SP1" class="function-link"><span class="function-syntax">InterInstruction::create_construct</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VARIABLE_IST</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"variable"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-ic.html#SP2" class="function-link"><span class="function-syntax">InterInstruction::defines_symbol_in_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">DEFN_VAR_IFLD</span><span class="plain-syntax">, </span><span class="constant-syntax">KIND_VAR_IFLD</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="3-ic.html#SP2" class="function-link"><span class="function-syntax">InterInstruction::defines_symbol_in_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">DEFN_VAR_IFLD</span><span class="plain-syntax">, </span><span class="constant-syntax">TYPE_VAR_IFLD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-ic.html#SP8" class="function-link"><span class="function-syntax">InterInstruction::specify_syntax</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"variable TOKENS = TOKENS"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="3-ic.html#SP8" class="function-link"><span class="function-syntax">InterInstruction::specify_syntax</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"variable TOKENS = TOKENS"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-ic.html#SP4" class="function-link"><span class="function-syntax">InterInstruction::fix_instruction_length_between</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">EXTENT_VAR_IFR</span><span class="plain-syntax">, </span><span class="constant-syntax">EXTENT_VAR_IFR</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="3-ic.html#SP4" class="function-link"><span class="function-syntax">InterInstruction::fix_instruction_length_between</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">6</span><span class="plain-syntax">, </span><span class="constant-syntax">6</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-ic.html#SP3" class="function-link"><span class="function-syntax">InterInstruction::permit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">INSIDE_PLAIN_PACKAGE_ICUP</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="3-ic.html#SP3" class="function-link"><span class="function-syntax">InterInstruction::permit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">INSIDE_PLAIN_PACKAGE_ICUP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-ic.html#SP3" class="function-link"><span class="function-syntax">InterInstruction::permit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CAN_HAVE_ANNOTATIONS_ICUP</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="3-ic.html#SP3" class="function-link"><span class="function-syntax">InterInstruction::permit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CAN_HAVE_ANNOTATIONS_ICUP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_READ_MTID</span><span class="plain-syntax">, </span><a href="4-tvc.html#SP2" class="function-link"><span class="function-syntax">VariableInstruction::read</span></a><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_READ_MTID</span><span class="plain-syntax">, </span><a href="4-tvc.html#SP4" class="function-link"><span class="function-syntax">VariableInstruction::read</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_VERIFY_MTID</span><span class="plain-syntax">, </span><a href="4-tvc.html#SP2" class="function-link"><span class="function-syntax">VariableInstruction::verify</span></a><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_TRANSPOSE_MTID</span><span class="plain-syntax">, </span><a href="4-tvc.html#SP2" class="function-link"><span class="function-syntax">VariableInstruction::transpose</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_WRITE_MTID</span><span class="plain-syntax">, </span><a href="4-tvc.html#SP2" class="function-link"><span class="function-syntax">VariableInstruction::write</span></a><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_VERIFY_MTID</span><span class="plain-syntax">, </span><a href="4-tvc.html#SP3" class="function-link"><span class="function-syntax">VariableInstruction::verify</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCT_WRITE_MTID</span><span class="plain-syntax">, </span><a href="4-tvc.html#SP5" class="function-link"><span class="function-syntax">VariableInstruction::write</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b></p> <p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. Instructions. </b>In bytecode, the frame of a <span class="extract"><span class="extract-syntax">propertyvalue</span></span> instruction is laid out with the two
compulsory words <span class="extract"><span class="extract-syntax">ID_IFLD</span></span> and <span class="extract"><span class="extract-syntax">LEVEL_IFLD</span></span>, followed by:
</p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">DEFN_VAR_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span> <pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">DEFN_VAR_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">KIND_VAR_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">3</span> <span class="definition-keyword">define</span> <span class="constant-syntax">TYPE_VAR_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">3</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">VAL1_VAR_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span> <span class="definition-keyword">define</span> <span class="constant-syntax">VAL1_VAR_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">VAL2_VAR_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">5</span> <span class="definition-keyword">define</span> <span class="constant-syntax">VAL2_VAR_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">5</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">EXTENT_VAR_IFR</span><span class="plain-syntax"> </span><span class="constant-syntax">6</span>
</pre> </pre>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">VariableInstruction::read</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">VariableInstruction::read</span></span>:<br/><a href="4-tvc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_line_parse</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">VariableInstruction::new</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">VariableInstruction::new</span></span>:<br/><a href="4-tvc.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_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">kind_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">name_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0];</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">var_type</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">match_results</span><span class="plain-syntax"> </span><span class="identifier-syntax">mr2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Regexp::create_mr</span><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_4_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">VARIABLE_IST</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">Regexp::match</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">name_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"%((%c+)%) (%c+)"</span><span class="plain-syntax">)) {</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">DEFN_VAR_IFLD:</span><span class="plain-syntax"> */ </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_s</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kind_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">mr2</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0];</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">TYPE_VAR_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_type</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">name_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">mr2</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[1];</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">VAL1_VAR_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-ivp.html#SP22" class="function-link"><span class="function-syntax">InterValuePairs::to_word1</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> /* </span><span class="identifier-syntax">VAL2_VAR_IFLD:</span><span class="plain-syntax"> */ </span><a href="3-ivp.html#SP22" class="function-link"><span class="function-syntax">InterValuePairs::to_word2</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">var_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP18" class="function-link"><span class="function-syntax">InterTypes::parse_simple</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_name</span><span class="plain-syntax"> = </span><a href="3-iitf.html#SP4" class="function-link"><span class="function-syntax">TextualInter::new_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">name_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ann.html#SP13" class="function-link"><span class="function-syntax">SymbolAnnotation::copy_set_to_symbol</span></a><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">set</span><span class="plain-syntax">), </span><span class="identifier-syntax">var_name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><a href="3-ivp.html#SP19" class="function-link"><span class="function-syntax">InterValuePairs::undef</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-iitf.html#SP12" class="function-link"><span class="function-syntax">TextualInter::parse_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">line</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[1], &amp;</span><span class="identifier-syntax">val</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="4-tvc.html#SP2" class="function-link"><span class="function-syntax">VariableInstruction::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_name</span><span class="plain-syntax">), </span><span class="identifier-syntax">var_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">, (</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indent_level</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">VariableInstruction::new</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">VID</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">var_type</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_4_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">VARIABLE_IST</span><span class="plain-syntax">, </span><span class="identifier-syntax">VID</span><span class="plain-syntax">, </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_type</span><span class="plain-syntax">), </span><a href="3-ivp.html#SP22" class="function-link"><span class="function-syntax">InterValuePairs::to_word1</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">), </span><a href="3-ivp.html#SP22" class="function-link"><span class="function-syntax">InterValuePairs::to_word2</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">), </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-np.html#SP3" class="function-link"><span class="function-syntax">NodePlacement::move_to_moving_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-np.html#SP3" class="function-link"><span class="function-syntax">NodePlacement::move_to_moving_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</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">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">NULL</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">VariableInstruction::verify</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">VariableInstruction::verify</span></span>:<br/><a href="4-tvc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-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">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">VariableInstruction::transpose</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">VariableInstruction::transpose</span></span>:<br/><a href="4-tvc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</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">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP6" class="function-link"><span class="function-syntax">VerifyingInter::TID_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">KIND_VAR_IFLD</span><span class="plain-syntax">); </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">grid</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">grid_extent</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP14" class="function-link"><span class="function-syntax">InterTypes::from_TID_in_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">KIND_VAR_IFLD</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="3-ivp.html#SP21" class="function-link"><span class="function-syntax">InterValuePairs::set</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_PVAL_IFLD</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP11" class="function-link"><span class="function-syntax">VerifyingInter::data_pair_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_VAR_IFLD</span><span class="plain-syntax">, </span><span class="identifier-syntax">type</span><span class="plain-syntax">); </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">E</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-ivp.html#SP23" class="function-link"><span class="function-syntax">InterValuePairs::transpose</span></a><span class="plain-syntax">(</span><a href="3-ivp.html#SP21" class="function-link"><span class="function-syntax">InterValuePairs::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_PVAL_IFLD</span><span class="plain-syntax">), </span><span class="identifier-syntax">grid</span><span class="plain-syntax">, </span><span class="identifier-syntax">grid_extent</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">));</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>Verification consists only of sanity checks.
</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">VariableInstruction::verify</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">VariableInstruction::verify</span></span>:<br/><a href="4-tvc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</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">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP6" class="function-link"><span class="function-syntax">VerifyingInter::TID_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">TYPE_VAR_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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP14" class="function-link"><span class="function-syntax">InterTypes::from_TID_in_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">TYPE_VAR_IFLD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP11" class="function-link"><span class="function-syntax">VerifyingInter::data_pair_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_VAR_IFLD</span><span class="plain-syntax">, </span><span class="identifier-syntax">type</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. Creating from textual Inter syntax. </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">VariableInstruction::read</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">VariableInstruction::read</span></span>:<br/><a href="4-tvc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_line_parse</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</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">type_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">name_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0];</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">match_results</span><span class="plain-syntax"> </span><span class="identifier-syntax">mr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Regexp::create_mr</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">Regexp::match</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">name_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"%((%c+)%) (%c+)"</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">type_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0]; </span><span class="identifier-syntax">name_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[1];</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">var_type</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="3-idt.html#SP18" class="function-link"><span class="function-syntax">InterTypes::parse_simple</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">type_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_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">E</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">var_s</span><span class="plain-syntax"> = </span><a href="3-iitf.html#SP4" class="function-link"><span class="function-syntax">TextualInter::new_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">name_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Regexp::dispose_of</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">mr</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ann.html#SP13" class="function-link"><span class="function-syntax">SymbolAnnotation::copy_set_to_symbol</span></a><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">set</span><span class="plain-syntax">), </span><span class="identifier-syntax">var_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><a href="3-ivp.html#SP19" class="function-link"><span class="function-syntax">InterValuePairs::undef</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-iitf.html#SP12" class="function-link"><span class="function-syntax">TextualInter::parse_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">line</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[1], &amp;</span><span class="identifier-syntax">val</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="4-tvc.html#SP2" class="function-link"><span class="function-syntax">VariableInstruction::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indent_level</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. Writing to textual Inter syntax. </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">VariableInstruction::write</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">VariableInstruction::write</span></span>:<br/><a href="4-tvc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_tree_node</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">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_s</span><span class="plain-syntax"> = </span><a href="4-tvc.html#SP6" class="function-link"><span class="function-syntax">VariableInstruction::variable</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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"variable "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-iitf.html#SP13" class="function-link"><span class="function-syntax">TextualInter::write_optional_type_marker</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">TYPE_VAR_IFLD</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">"%S = "</span><span class="plain-syntax">, </span><a href="2-sym.html#SP19" class="function-link"><span class="function-syntax">InterSymbol::identifier</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">var_s</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="3-iitf.html#SP12" class="function-link"><span class="function-syntax">TextualInter::write_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><a href="4-tvc.html#SP6" class="function-link"><span class="function-syntax">VariableInstruction::value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">), </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ann.html#SP14" class="function-link"><span class="function-syntax">SymbolAnnotation::write_annotations</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. Access functions. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">VariableInstruction::variable</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">VariableInstruction::variable</span></span>:<br/><a href="4-tvc.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_tree_node</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">P</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">ID_IFLD</span><span class="plain-syntax">] != </span><span class="constant-syntax">VARIABLE_IST</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><a href="2-st.html#SP13" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID_at_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">DEFN_VAR_IFLD</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">VariableInstruction::write</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">VariableInstruction::write</span></span>:<br/><a href="4-tvc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IC</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-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">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="function-syntax">VariableInstruction::value</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">VariableInstruction::value</span></span>:<br/><a href="4-tvc.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_tree_node</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_name</span><span class="plain-syntax"> = </span><a href="2-st.html#SP13" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID_at_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">DEFN_VAR_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">P</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><a href="3-ivp.html#SP19" class="function-link"><span class="function-syntax">InterValuePairs::undef</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">var_name</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">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">ID_IFLD</span><span class="plain-syntax">] != </span><span class="constant-syntax">VARIABLE_IST</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-ivp.html#SP19" class="function-link"><span class="function-syntax">InterValuePairs::undef</span></a><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">"variable "</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-ivp.html#SP21" class="function-link"><span class="function-syntax">InterValuePairs::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_VAR_IFLD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-iitf.html#SP13" class="function-link"><span class="function-syntax">TextualInter::write_optional_type_marker</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">KIND_VAR_IFLD</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">"%S = "</span><span class="plain-syntax">, </span><a href="2-sym.html#SP19" class="function-link"><span class="function-syntax">InterSymbol::identifier</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">var_name</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="3-iitf.html#SP12" class="function-link"><span class="function-syntax">TextualInter::write_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><a href="3-ivp.html#SP21" class="function-link"><span class="function-syntax">InterValuePairs::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_VAR_IFLD</span><span class="plain-syntax">), </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ann.html#SP14" class="function-link"><span class="function-syntax">SymbolAnnotation::write_annotations</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_name</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">E</span><span class="plain-syntax"> = </span><a href="2-in.html#SP15" class="function-link"><span class="function-syntax">Inode::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"cannot write variable"</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="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<nav role="progress"><div class="progresscontainer"> <nav role="progress"><div class="progresscontainer">

View file

@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html> <html>
<head> <head>
<title>The Lab Construct</title> <title>The Assembly Construct</title>
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css"> <link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
<meta name="viewport" content="width=device-width initial-scale=1"> <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-Type" content="text/html; charset=utf-8">
@ -68,10 +68,10 @@ function togglePopup(material_id) {
</ul> </ul>
</nav> </nav>
<main role="main"> <main role="main">
<!--Weave of 'The Lab Construct' generated by Inweb--> <!--Weave of 'The Assembly Construct' generated by Inweb-->
<div class="breadcrumbs"> <div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">bytecode</a></li><li><a href="index.html#5">Chapter 5: Code Constructs</a></li><li><b>The Lab Construct</b></li></ul></div> <ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">bytecode</a></li><li><a href="index.html#5">Chapter 5: Code Constructs</a></li><li><b>The Assembly Construct</b></li></ul></div>
<p class="purpose">Defining the Lab construct.</p> <p class="purpose">Defining the assembly construct.</p>
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b></p> <p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b></p>

View file

@ -108,7 +108,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">CastInstruction::new</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from_kind</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to_kind</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">CastInstruction::new</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from_kind</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to_kind</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_3_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">CAST_IST</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">to_kind</span><span class="plain-syntax">), </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">from_kind</span><span class="plain-syntax">), </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, (</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_3_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">CAST_IST</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">to_kind</span><span class="plain-syntax">), </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">from_kind</span><span class="plain-syntax">), </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, (</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">); </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">); </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-np.html#SP3" class="function-link"><span class="function-syntax">NodePlacement::move_to_moving_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-np.html#SP3" class="function-link"><span class="function-syntax">NodePlacement::move_to_moving_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</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">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">NULL</span><span class="plain-syntax">;</span>

View file

@ -142,7 +142,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">InvInstruction::new_call</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">invoked_name</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">InvInstruction::new_call</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">invoked_name</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_3_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">INV_IST</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">INVOKED_ROUTINE</span><span class="plain-syntax">, </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">invoked_name</span><span class="plain-syntax">), </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, (</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_3_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">INV_IST</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">INVOKED_ROUTINE</span><span class="plain-syntax">, </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">invoked_name</span><span class="plain-syntax">), </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, (</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</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">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-np.html#SP3" class="function-link"><span class="function-syntax">NodePlacement::move_to_moving_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-np.html#SP3" class="function-link"><span class="function-syntax">NodePlacement::move_to_moving_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>

View file

@ -110,7 +110,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">LabInstruction::new</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">label</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">LabInstruction::new</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">label</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_2_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">LAB_IST</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">label</span><span class="plain-syntax">), </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, (</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_2_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">LAB_IST</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">label</span><span class="plain-syntax">), </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, (</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">); </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">); </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-np.html#SP3" class="function-link"><span class="function-syntax">NodePlacement::move_to_moving_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-np.html#SP3" class="function-link"><span class="function-syntax">NodePlacement::move_to_moving_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</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">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">NULL</span><span class="plain-syntax">;</span>

View file

@ -113,7 +113,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">LabelInstruction::new</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lab_name</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">LabelInstruction::new</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lab_name</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_2_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">LABEL_IST</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">lab_name</span><span class="plain-syntax">), </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_2_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">LABEL_IST</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">lab_name</span><span class="plain-syntax">), </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">); </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">); </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-np.html#SP3" class="function-link"><span class="function-syntax">NodePlacement::move_to_moving_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-np.html#SP3" class="function-link"><span class="function-syntax">NodePlacement::move_to_moving_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</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">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">NULL</span><span class="plain-syntax">;</span>

View file

@ -121,7 +121,7 @@ function togglePopup(material_id) {
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">LocalInstruction::new</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_name</span><span class="plain-syntax">,</span> <span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">LocalInstruction::new</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_name</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">var_type</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">var_type</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_3_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">LOCAL_IST</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_name</span><span class="plain-syntax">), </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_type</span><span class="plain-syntax">), </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-in.html#SP5" class="function-link"><span class="function-syntax">Inode::new_with_3_data_fields</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="constant-syntax">LOCAL_IST</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_at_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_name</span><span class="plain-syntax">), </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_type</span><span class="plain-syntax">), </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">); </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">VerifyingInter::instruction</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP6" class="function-link"><span class="function-syntax">InterBookmark::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">); </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-np.html#SP3" class="function-link"><span class="function-syntax">NodePlacement::move_to_moving_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-np.html#SP3" class="function-link"><span class="function-syntax">NodePlacement::move_to_moving_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</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">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">NULL</span><span class="plain-syntax">;</span>

View file

@ -294,8 +294,8 @@
<ul class="sectionlist"> <ul class="sectionlist">
<li> <li>
<p class="sectionentry"><a href="5-tac.html"> <p class="sectionentry"><a href="5-tac.html">
<spon class="sectiontitle">The Lab Construct</span></a> - <spon class="sectiontitle">The Assembly Construct</span></a> -
<span class="sectionpurpose">Defining the Lab construct.</span></p> <span class="sectionpurpose">Defining the assembly construct.</span></p>
</li> </li>
<li> <li>
<p class="sectionentry"><a href="5-tcc.html"> <p class="sectionentry"><a href="5-tcc.html">

View file

@ -202,7 +202,7 @@ object.
<span class="plain-syntax"> </span><span class="reserved-syntax">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">code_generation</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">code_generation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">code_generation</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">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">ID_IFLD</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">P</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">ID_IFLD</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">VARIABLE_IST:</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">VARIABLE_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">var_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTable::symbol_from_ID_at_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">DEFN_VAR_IFLD</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">var_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VariableInstruction::variable</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">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">var_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">global_variables</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">var_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">global_variables</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">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
@ -220,7 +220,7 @@ object.
<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">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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">TYPENAME_IST:</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">TYPENAME_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">typename</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTable::symbol_from_ID_at_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">DEFN_TYPENAME_IFLD</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">typename</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TypenameInstruction::typename</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">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">typename</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kinds</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">typename</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax">, </span><span class="identifier-syntax">gen</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kinds</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">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>

View file

@ -96,7 +96,7 @@ of a lookup whenever we read or write them.
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_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">var_name</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">var_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</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">var_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</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">var_name</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">definition</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">var_name</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">definition</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterValuePairs::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">VAL1_VAR_IFLD</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VariableInstruction::value</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">SymbolAnnotation::get_b</span><span class="plain-syntax">(</span><span class="identifier-syntax">var_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">ASSIMILATED_IANN</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">SymbolAnnotation::get_b</span><span class="plain-syntax">(</span><span class="identifier-syntax">var_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">ASSIMILATED_IANN</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">k</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="4-i6gv.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Begin the array</span><span class="named-paragraph-number">2.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">k</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="4-i6gv.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Begin the array</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="4-i6gv.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Variables created by Inform 7 source text all go into the 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="4-i6gv.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Variables created by Inform 7 source text all go into the array</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>

View file

@ -186,7 +186,7 @@ but has no Inter declaration node.
<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="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">var_name</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">definition</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">var_name</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">definition</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">var_name</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">definition</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">var_name</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">definition</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-cg.html#SP16" class="function-link"><span class="function-syntax">CodeGen::pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterValuePairs::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">VAL1_VAR_IFLD</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><a href="2-cg.html#SP16" class="function-link"><span class="function-syntax">CodeGen::pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">VariableInstruction::value</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">else</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">"0"</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">"0"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>

View file

@ -153,9 +153,8 @@ base data type matches this".
<span class="plain-syntax"> </span><span class="identifier-syntax">unchecked_kind_symbol</span><span class="plain-syntax"> =</span> <span class="plain-syntax"> </span><span class="identifier-syntax">unchecked_kind_symbol</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::create_with_unique_name</span><span class="plain-syntax">(</span> <span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::create_with_unique_name</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"K_unchecked"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"K_unchecked"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TypenameInstruction::new</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TypenameInstruction::new</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">, </span><span class="identifier-syntax">unchecked_kind_symbol</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">generic_kinds_p</span><span class="plain-syntax">, </span><span class="identifier-syntax">unchecked_kind_symbol</span><span class="plain-syntax">),</span> <span class="plain-syntax"> </span><span class="identifier-syntax">UNCHECKED_ITCONC</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">NULL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">UNCHECKED_ITCONC</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">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="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</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_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ns.html#SP1">&#167;1</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="2-ns.html#SP1">&#167;1</a>.</li></ul>
@ -167,16 +166,15 @@ base data type matches this".
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[2];</span> <span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[2];</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[0] = </span><span class="identifier-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span><span class="plain-syntax">(</span> <span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[0] = </span><span class="identifier-syntax">InterSymbolsTable::id_at_bookmark</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> &amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">, </span><span class="identifier-syntax">unchecked_kind_symbol</span><span class="plain-syntax">);</span> <span class="plain-syntax"> &amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">, </span><span class="identifier-syntax">unchecked_kind_symbol</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[1] = </span><span class="identifier-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span><span class="plain-syntax">(</span> <span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[1] = </span><span class="identifier-syntax">InterSymbolsTable::id_at_bookmark</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> &amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">, </span><span class="identifier-syntax">unchecked_kind_symbol</span><span class="plain-syntax">);</span> <span class="plain-syntax"> &amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">, </span><span class="identifier-syntax">unchecked_kind_symbol</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">unchecked_function_symbol</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">unchecked_function_symbol</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::create_with_unique_name</span><span class="plain-syntax">(</span> <span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::create_with_unique_name</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"K_unchecked_function"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"K_unchecked_function"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TypenameInstruction::new</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TypenameInstruction::new</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">, </span><span class="identifier-syntax">unchecked_function_symbol</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">generic_kinds_p</span><span class="plain-syntax">, </span><span class="identifier-syntax">unchecked_function_symbol</span><span class="plain-syntax">),</span> <span class="plain-syntax"> </span><span class="identifier-syntax">FUNCTION_ITCONC</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="identifier-syntax">operands</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FUNCTION_ITCONC</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="identifier-syntax">operands</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">InterBookmark::baseline</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</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_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ns.html#SP1">&#167;1</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="2-ns.html#SP1">&#167;1</a>.</li></ul>
@ -188,16 +186,15 @@ base data type matches this".
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[2];</span> <span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[2];</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[0] = </span><span class="identifier-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span><span class="plain-syntax">(</span> <span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[0] = </span><span class="identifier-syntax">InterSymbolsTable::id_at_bookmark</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> &amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">, </span><span class="identifier-syntax">unchecked_kind_symbol</span><span class="plain-syntax">);</span> <span class="plain-syntax"> &amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">, </span><span class="identifier-syntax">unchecked_kind_symbol</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[1] = </span><span class="identifier-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span><span class="plain-syntax">(</span> <span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[1] = </span><span class="identifier-syntax">InterSymbolsTable::id_at_bookmark</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> &amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">, </span><span class="identifier-syntax">unchecked_kind_symbol</span><span class="plain-syntax">);</span> <span class="plain-syntax"> &amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">, </span><span class="identifier-syntax">unchecked_kind_symbol</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">unchecked_list_symbol</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">unchecked_list_symbol</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::create_with_unique_name</span><span class="plain-syntax">(</span> <span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::create_with_unique_name</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"K_unchecked_list"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"K_unchecked_list"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TypenameInstruction::new</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TypenameInstruction::new</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">, </span><span class="identifier-syntax">unchecked_list_symbol</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">generic_kinds_p</span><span class="plain-syntax">, </span><span class="identifier-syntax">unchecked_list_symbol</span><span class="plain-syntax">),</span> <span class="plain-syntax"> </span><span class="identifier-syntax">LIST_ITCONC</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">operands</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LIST_ITCONC</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">operands</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">InterBookmark::baseline</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</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_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ns.html#SP1">&#167;1</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="2-ns.html#SP1">&#167;1</a>.</li></ul>
@ -213,8 +210,7 @@ end up being basically the same thing.)
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">integer_kind_symbol</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">integer_kind_symbol</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::create_with_unique_name</span><span class="plain-syntax">(</span> <span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::create_with_unique_name</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"K_int32"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"K_int32"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TypenameInstruction::new</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TypenameInstruction::new</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">, </span><span class="identifier-syntax">integer_kind_symbol</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">generic_kinds_p</span><span class="plain-syntax">, </span><span class="identifier-syntax">integer_kind_symbol</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">INT32_ITCONC</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">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="identifier-syntax">INT32_ITCONC</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">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="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</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_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
</pre> </pre>
@ -226,9 +222,8 @@ end up being basically the same thing.)
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">boolean_kind_symbol</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">boolean_kind_symbol</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::create_with_unique_name</span><span class="plain-syntax">(</span> <span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::create_with_unique_name</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"K_int2"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"K_int2"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TypenameInstruction::new</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TypenameInstruction::new</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">, </span><span class="identifier-syntax">boolean_kind_symbol</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">generic_kinds_p</span><span class="plain-syntax">, </span><span class="identifier-syntax">boolean_kind_symbol</span><span class="plain-syntax">),</span> <span class="plain-syntax"> </span><span class="identifier-syntax">INT2_ITCONC</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">NULL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">INT2_ITCONC</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">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="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</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_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ns.html#SP1">&#167;1</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="2-ns.html#SP1">&#167;1</a>.</li></ul>
@ -239,9 +234,8 @@ end up being basically the same thing.)
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">string_kind_symbol</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">string_kind_symbol</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::create_with_unique_name</span><span class="plain-syntax">(</span> <span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::create_with_unique_name</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"K_string"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"K_string"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TypenameInstruction::new</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TypenameInstruction::new</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">, </span><span class="identifier-syntax">string_kind_symbol</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">generic_kinds_p</span><span class="plain-syntax">, </span><span class="identifier-syntax">string_kind_symbol</span><span class="plain-syntax">),</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TEXT_ITCONC</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">NULL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEXT_ITCONC</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">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="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</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_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">in_generic_kinds</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ns.html#SP1">&#167;1</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="2-ns.html#SP1">&#167;1</a>.</li></ul>

View file

@ -498,20 +498,19 @@ not already there.
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterValuePairs::undef</span><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterValuePairs::undef</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-css.html#SP3_1_3_1_4_1_1" class="named-paragraph-link"><span class="named-paragraph">Assimilate a value</span><span class="named-paragraph-number">3.1.3.1.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="3-css.html#SP3_1_3_1_4_1_1" class="named-paragraph-link"><span class="named-paragraph">Assimilate a value</span><span class="named-paragraph-number">3.1.3.1.4.1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">ConstantInstruction::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">made_s</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">ConstantInstruction::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">made_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterTypes::unchecked</span><span class="plain-syntax">(),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterTypes::unchecked</span><span class="plain-syntax">(), </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">B</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">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">B</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-css.html#SP3_1_3_1_4">&#167;3.1.3.1.4</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="3-css.html#SP3_1_3_1_4">&#167;3.1.3.1.4</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP3_1_3_1_4_2" class="paragraph-anchor"></a><b>&#167;3.1.3.1.4.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Make a global variable in Inter</span><span class="named-paragraph-number">3.1.3.1.4.2</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP3_1_3_1_4_2" class="paragraph-anchor"></a><b>&#167;3.1.3.1.4.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Make a global variable in Inter</span><span class="named-paragraph-number">3.1.3.1.4.2</span></span><span class="comment-syntax"> =</span>
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">MID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTable::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterBookmark::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">made_s</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">B</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterValuePairs::undef</span><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterValuePairs::undef</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-css.html#SP3_1_3_1_4_1_1" class="named-paragraph-link"><span class="named-paragraph">Assimilate a value</span><span class="named-paragraph-number">3.1.3.1.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="3-css.html#SP3_1_3_1_4_1_1" class="named-paragraph-link"><span class="named-paragraph">Assimilate a value</span><span class="named-paragraph-number">3.1.3.1.4.1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">VariableInstruction::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">MID</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">VariableInstruction::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">made_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterTypes::unchecked</span><span class="plain-syntax">(),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterTypes::unchecked</span><span class="plain-syntax">(), </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">B</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">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">B</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-css.html#SP3_1_3_1_4">&#167;3.1.3.1.4</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="3-css.html#SP3_1_3_1_4">&#167;3.1.3.1.4</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP3_1_3_1_4_3" class="paragraph-anchor"></a><b>&#167;3.1.3.1.4.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Make a general property in Inter</span><span class="named-paragraph-number">3.1.3.1.4.3</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP3_1_3_1_4_3" class="paragraph-anchor"></a><b>&#167;3.1.3.1.4.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Make a general property in Inter</span><span class="named-paragraph-number">3.1.3.1.4.3</span></span><span class="comment-syntax"> =</span>
@ -519,7 +518,8 @@ not already there.
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">PropertyInstruction::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">made_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterTypes::unchecked</span><span class="plain-syntax">(), </span><span class="identifier-syntax">B</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">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">PropertyInstruction::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">made_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterTypes::unchecked</span><span class="plain-syntax">(),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-css.html#SP3_1_3_1_4">&#167;3.1.3.1.4</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="3-css.html#SP3_1_3_1_4">&#167;3.1.3.1.4</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP3_1_3_1_4_4" class="paragraph-anchor"></a><b>&#167;3.1.3.1.4.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Make an either-or property in Inter</span><span class="named-paragraph-number">3.1.3.1.4.4</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP3_1_3_1_4_4" class="paragraph-anchor"></a><b>&#167;3.1.3.1.4.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Make an either-or property in Inter</span><span class="named-paragraph-number">3.1.3.1.4.4</span></span><span class="comment-syntax"> =</span>
@ -1384,7 +1384,7 @@ But not really more efficient Inter.
<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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">i1</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">i2</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">i1</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">i2</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">InterBookmark::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">InterBookmark::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">result_s</span><span class="plain-syntax"> = </span><a href="3-css.html#SP10" class="function-link"><span class="function-syntax">CompileSplatsStage::new_ccv_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</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">result_s</span><span class="plain-syntax"> = </span><a href="3-css.html#SP10" class="function-link"><span class="function-syntax">CompileSplatsStage::new_ccv_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</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">MID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTable::id_from_symbol_at_bookmark</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">result_s</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">MID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTable::id_at_bookmark</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">result_s</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">KID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterTypes::to_TID</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">InterTypes::unchecked</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">KID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterTypes::to_TID</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">InterTypes::unchecked</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">B</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pair_list</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">pair_list</span><span class="plain-syntax"> =</span>

View file

@ -169,7 +169,7 @@ does exist, it must have a definition, and we return that.
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">TID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterTypes::to_TID</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">Packaging::at</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_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">TID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterTypes::to_TID</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">Packaging::at</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">InterTypes::from_constructor_code</span><span class="plain-syntax">(</span><span class="identifier-syntax">LIST_ITCONC</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><span class="identifier-syntax">InterTypes::from_constructor_code</span><span class="plain-syntax">(</span><span class="identifier-syntax">LIST_ITCONC</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">synoptic_array_node</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inode::new_with_3_data_fields</span><span class="plain-syntax">(</span><span class="identifier-syntax">Packaging::at</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</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">synoptic_array_node</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inode::new_with_3_data_fields</span><span class="plain-syntax">(</span><span class="identifier-syntax">Packaging::at</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</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">InterSymbolsTable::id_from_symbol_at_bookmark</span><span class="plain-syntax">(</span><span class="identifier-syntax">Packaging::at</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</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">InterSymbolsTable::id_at_bookmark</span><span class="plain-syntax">(</span><span class="identifier-syntax">Packaging::at</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</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">TID</span><span class="plain-syntax">, </span><span class="identifier-syntax">CONST_LIST_FORMAT_COLLECTION</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">TID</span><span class="plain-syntax">, </span><span class="identifier-syntax">CONST_LIST_FORMAT_COLLECTION</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_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(</span><span class="identifier-syntax">Packaging::at</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="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">InterBookmark::baseline</span><span class="plain-syntax">(</span><span class="identifier-syntax">Packaging::at</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>

View file

@ -173,7 +173,7 @@ and author; together with any "extra credit" asked for by the extension.
<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">M</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">where_found</span><span class="plain-syntax">, </span><span class="constant-syntax">EXT_VERSION_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">V</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">M</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">where_found</span><span class="plain-syntax">, </span><span class="constant-syntax">EXT_VERSION_MD_HL</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">DISCARD_TEXT</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">DISCARD_TEXT</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">id_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">EXTENSION_ID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">M</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">where_found</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">id_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">EXTENSION_ID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">M</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">where_found</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id_iname</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-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id_iname</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">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">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">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ext</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">raw_title</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">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ext</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">raw_title</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">VersionNumbers::is_null</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</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">" version %v"</span><span class="plain-syntax">, &amp;</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">VersionNumbers::is_null</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</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">" version %v"</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>

View file

@ -213,7 +213,7 @@ for example, the default value of <span class="extract"><span class="extract-syn
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="function-syntax">DefaultValues::to_value_pair</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">DefaultValues::to_value_pair</span></span>:<br/><a href="2-dv.html#SP1">&#167;1</a><br/>Emit - <a href="2-emt.html#SP6">&#167;6</a></span></button><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_pair</span><span class="plain-syntax"> </span><span class="function-syntax">DefaultValues::to_value_pair</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">DefaultValues::to_value_pair</span></span>:<br/><a href="2-dv.html#SP1">&#167;1</a><br/>Emit - <a href="2-emt.html#SP5">&#167;5</a></span></button><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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</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">InterValuePairs::undef</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">K</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">InterValuePairs::undef</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-dv.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Constructed kinds stored as block values</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="2-dv.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Constructed kinds stored as block values</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="2-dv.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Base kinds stored as block values</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="2-dv.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Base kinds stored as block values</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>

View file

@ -73,7 +73,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">runtime</a></li><li><a href="index.html#2">Chapter 2: Emission</a></li><li><b>Emit</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#2">Chapter 2: Emission</a></li><li><b>Emit</b></li></ul></div>
<p class="purpose">"Emitting" is the process of generating Inter bytecode, and this section provides a comprehensive API for the runtime and imperative modules to do that.</p> <p class="purpose">"Emitting" is the process of generating Inter bytecode, and this section provides a comprehensive API for the runtime and imperative modules to do that.</p>
<ul class="toc"><li><a href="2-emt.html#SP1">&#167;1. The emission tree</a></li><li><a href="2-emt.html#SP2">&#167;2. Data as pairs of Inter bytes</a></li><li><a href="2-emt.html#SP4">&#167;4. Kinds</a></li><li><a href="2-emt.html#SP7">&#167;7. Pragmas</a></li><li><a href="2-emt.html#SP8">&#167;8. Constants</a></li><li><a href="2-emt.html#SP14">&#167;14. Instances</a></li><li><a href="2-emt.html#SP15">&#167;15. Variables</a></li><li><a href="2-emt.html#SP16">&#167;16. Properties and permissions</a></li><li><a href="2-emt.html#SP17">&#167;17. Property values</a></li><li><a href="2-emt.html#SP18">&#167;18. Private, keep out</a></li><li><a href="2-emt.html#SP19">&#167;19. Interventions</a></li></ul><hr class="tocbar"> <ul class="toc"><li><a href="2-emt.html#SP1">&#167;1. The emission tree</a></li><li><a href="2-emt.html#SP2">&#167;2. Data as pairs of Inter bytes</a></li><li><a href="2-emt.html#SP4">&#167;4. Kinds</a></li><li><a href="2-emt.html#SP6">&#167;6. Pragmas</a></li><li><a href="2-emt.html#SP7">&#167;7. Constants</a></li><li><a href="2-emt.html#SP13">&#167;13. Instances</a></li><li><a href="2-emt.html#SP14">&#167;14. Variables</a></li><li><a href="2-emt.html#SP15">&#167;15. Properties and permissions</a></li><li><a href="2-emt.html#SP16">&#167;16. Property values</a></li><li><a href="2-emt.html#SP17">&#167;17. Private, keep out</a></li><li><a href="2-emt.html#SP18">&#167;18. Interventions</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. The emission tree. </b>The <a href="../bytecode-module/index.html" class="internal">bytecode</a> module can maintain multiple independent trees of Inter code <p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. The emission tree. </b>The <a href="../bytecode-module/index.html" class="internal">bytecode</a> module can maintain multiple independent trees of Inter code
in memory, so that most calls to <a href="../bytecode-module/index.html" class="internal">bytecode</a> or <a href="../building-module/index.html" class="internal">building</a> take an <span class="extract"><span class="extract-syntax">inter_tree</span></span> in memory, so that most calls to <a href="../bytecode-module/index.html" class="internal">bytecode</a> or <a href="../building-module/index.html" class="internal">building</a> take an <span class="extract"><span class="extract-syntax">inter_tree</span></span>
@ -93,23 +93,23 @@ creates the <span class="extract"><span class="extract-syntax">main</span></span
<span class="plain-syntax"> </span><span class="identifier-syntax">LargeScale::begin_new_tree</span><span class="plain-syntax">(</span><span class="identifier-syntax">main_emission_tree</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">LargeScale::begin_new_tree</span><span class="plain-syntax">(</span><span class="identifier-syntax">main_emission_tree</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">main_emission_tree</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">main_emission_tree</span><span class="plain-syntax">;</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="function-syntax">Emit::tree</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">Emit::tree</span></span>:<br/><a href="2-emt.html#SP4">&#167;4</a>, <a href="2-emt.html#SP6">&#167;6</a>, <a href="2-emt.html#SP7">&#167;7</a>, <a href="2-emt.html#SP8">&#167;8</a>, <a href="2-emt.html#SP9">&#167;9</a>, <a href="2-emt.html#SP10">&#167;10</a>, <a href="2-emt.html#SP11">&#167;11</a>, <a href="2-emt.html#SP13">&#167;13</a>, <a href="2-emt.html#SP14">&#167;14</a>, <a href="2-emt.html#SP15">&#167;15</a>, <a href="2-emt.html#SP16">&#167;16</a>, <a href="2-emt.html#SP20">&#167;20</a><br/>Hierarchy - <a href="2-hrr.html#SP1">&#167;1</a>, <a href="2-hrr.html#SP2">&#167;2</a>, <a href="2-hrr.html#SP8">&#167;8</a>, <a href="2-hrr.html#SP9">&#167;9</a>, <a href="2-hrr.html#SP11">&#167;11</a>, <a href="2-hrr.html#SP12">&#167;12</a>, <a href="2-hrr.html#SP13">&#167;13</a>, <a href="2-hrr.html#SP14">&#167;14</a>, <a href="2-hrr.html#SP15">&#167;15</a>, <a href="2-hrr.html#SP16">&#167;16</a>, <a href="2-hrr.html#SP17">&#167;17</a>, <a href="2-hrr.html#SP18">&#167;18</a>, <a href="2-hrr.html#SP20">&#167;20</a>, <a href="2-hrr.html#SP21">&#167;21</a>, <a href="2-hrr.html#SP22">&#167;22</a><br/>Compilation Units - <a href="2-cu.html#SP2_1">&#167;2.1</a><br/>Emit Code - <a href="2-ec.html#SP2">&#167;2</a>, <a href="2-ec.html#SP3">&#167;3</a>, <a href="2-ec.html#SP4">&#167;4</a>, <a href="2-ec.html#SP5">&#167;5</a>, <a href="2-ec.html#SP7">&#167;7</a>, <a href="2-ec.html#SP9">&#167;9</a>, <a href="2-ec.html#SP11">&#167;11</a>, <a href="2-ec.html#SP12">&#167;12</a>, <a href="2-ec.html#SP13">&#167;13</a>, <a href="2-ec.html#SP14">&#167;14</a>, <a href="2-ec.html#SP15">&#167;15</a>, <a href="2-ec.html#SP16">&#167;16</a><br/>Emit Arrays - <a href="2-ea.html#SP5">&#167;5</a><br/>Default Values - <a href="2-dv.html#SP1">&#167;1</a><br/>Generic Module - <a href="3-gm.html#SP1">&#167;1</a><br/>Enclosures - <a href="4-enc.html#SP1">&#167;1</a><br/>Text Substitutions - <a href="4-ts.html#SP7_4">&#167;7.4</a><br/>Rules - <a href="5-rls.html#SP6">&#167;6</a><br/>Variables - <a href="5-vrb.html#SP6">&#167;6</a>, <a href="5-vrb.html#SP15">&#167;15</a><br/>Kind Constructors - <a href="5-kc.html#SP3">&#167;3</a>, <a href="5-kc.html#SP4">&#167;4</a>, <a href="5-kc.html#SP8">&#167;8</a>, <a href="5-kc.html#SP10">&#167;10</a><br/>Property Permissions - <a href="6-pp.html#SP2">&#167;2</a>, <a href="6-pp.html#SP3">&#167;3</a><br/>Property Values - <a href="6-pv.html#SP2">&#167;2</a>, <a href="6-pv.html#SP2_2_1">&#167;2.2.1</a><br/>Command Grammars - <a href="7-cg.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::tree</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">Emit::tree</span></span>:<br/><a href="2-emt.html#SP4">&#167;4</a>, <a href="2-emt.html#SP5">&#167;5</a>, <a href="2-emt.html#SP6">&#167;6</a>, <a href="2-emt.html#SP7">&#167;7</a>, <a href="2-emt.html#SP8">&#167;8</a>, <a href="2-emt.html#SP9">&#167;9</a>, <a href="2-emt.html#SP10">&#167;10</a>, <a href="2-emt.html#SP12">&#167;12</a>, <a href="2-emt.html#SP13">&#167;13</a>, <a href="2-emt.html#SP14">&#167;14</a>, <a href="2-emt.html#SP15">&#167;15</a>, <a href="2-emt.html#SP19">&#167;19</a><br/>Hierarchy - <a href="2-hrr.html#SP1">&#167;1</a>, <a href="2-hrr.html#SP2">&#167;2</a>, <a href="2-hrr.html#SP8">&#167;8</a>, <a href="2-hrr.html#SP9">&#167;9</a>, <a href="2-hrr.html#SP11">&#167;11</a>, <a href="2-hrr.html#SP12">&#167;12</a>, <a href="2-hrr.html#SP13">&#167;13</a>, <a href="2-hrr.html#SP14">&#167;14</a>, <a href="2-hrr.html#SP15">&#167;15</a>, <a href="2-hrr.html#SP16">&#167;16</a>, <a href="2-hrr.html#SP17">&#167;17</a>, <a href="2-hrr.html#SP18">&#167;18</a>, <a href="2-hrr.html#SP20">&#167;20</a>, <a href="2-hrr.html#SP21">&#167;21</a>, <a href="2-hrr.html#SP22">&#167;22</a><br/>Compilation Units - <a href="2-cu.html#SP2_1">&#167;2.1</a><br/>Emit Code - <a href="2-ec.html#SP2">&#167;2</a>, <a href="2-ec.html#SP3">&#167;3</a>, <a href="2-ec.html#SP4">&#167;4</a>, <a href="2-ec.html#SP5">&#167;5</a>, <a href="2-ec.html#SP7">&#167;7</a>, <a href="2-ec.html#SP9">&#167;9</a>, <a href="2-ec.html#SP11">&#167;11</a>, <a href="2-ec.html#SP12">&#167;12</a>, <a href="2-ec.html#SP13">&#167;13</a>, <a href="2-ec.html#SP14">&#167;14</a>, <a href="2-ec.html#SP15">&#167;15</a>, <a href="2-ec.html#SP16">&#167;16</a><br/>Emit Arrays - <a href="2-ea.html#SP5">&#167;5</a><br/>Default Values - <a href="2-dv.html#SP1">&#167;1</a><br/>Generic Module - <a href="3-gm.html#SP1">&#167;1</a><br/>Enclosures - <a href="4-enc.html#SP1">&#167;1</a><br/>Text Substitutions - <a href="4-ts.html#SP7_4">&#167;7.4</a><br/>Rules - <a href="5-rls.html#SP6">&#167;6</a><br/>Variables - <a href="5-vrb.html#SP6">&#167;6</a>, <a href="5-vrb.html#SP15">&#167;15</a><br/>Kind Constructors - <a href="5-kc.html#SP3">&#167;3</a>, <a href="5-kc.html#SP4">&#167;4</a>, <a href="5-kc.html#SP8">&#167;8</a>, <a href="5-kc.html#SP10">&#167;10</a><br/>Property Permissions - <a href="6-pp.html#SP2">&#167;2</a>, <a href="6-pp.html#SP3">&#167;3</a><br/>Property Values - <a href="6-pv.html#SP2">&#167;2</a>, <a href="6-pv.html#SP2_2_1">&#167;2.2.1</a><br/>Command Grammars - <a href="7-cg.html#SP6">&#167;6</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">main_emission_tree</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">main_emission_tree</span><span class="plain-syntax">;</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="function-syntax">Emit::symbol_id</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">Emit::symbol_id</span></span>:<br/><a href="2-emt.html#SP4">&#167;4</a>, <a href="2-emt.html#SP15">&#167;15</a><br/>Emit Arrays - <a href="2-ea.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::symbol_id</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">Emit::symbol_id</span></span>:<br/>Emit Arrays - <a href="2-ea.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</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">InterSymbolsTable::id_from_symbol_at_bookmark</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">S</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">InterSymbolsTable::id_at_bookmark</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="identifier-syntax">inter_warehouse</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::warehouse</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">inter_warehouse</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::warehouse</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">InterTree::warehouse</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="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">InterTree::warehouse</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="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="identifier-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::at</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">Emit::at</span></span>:<br/><a href="2-emt.html#SP3">&#167;3</a>, <a href="2-emt.html#SP4">&#167;4</a>, <a href="2-emt.html#SP5">&#167;5</a>, <a href="2-emt.html#SP6">&#167;6</a>, <a href="2-emt.html#SP8">&#167;8</a>, <a href="2-emt.html#SP9">&#167;9</a>, <a href="2-emt.html#SP10">&#167;10</a>, <a href="2-emt.html#SP11">&#167;11</a>, <a href="2-emt.html#SP13">&#167;13</a>, <a href="2-emt.html#SP14">&#167;14</a>, <a href="2-emt.html#SP15">&#167;15</a>, <a href="2-emt.html#SP16">&#167;16</a>, <a href="2-emt.html#SP17">&#167;17</a>, <a href="2-emt.html#SP18">&#167;18</a>, <a href="2-emt.html#SP19">&#167;19</a>, <a href="2-emt.html#SP20">&#167;20</a><br/>Emit Arrays - <a href="2-ea.html#SP4">&#167;4</a>, <a href="2-ea.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::at</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">Emit::at</span></span>:<br/><a href="2-emt.html#SP3">&#167;3</a>, <a href="2-emt.html#SP4">&#167;4</a>, <a href="2-emt.html#SP5">&#167;5</a>, <a href="2-emt.html#SP7">&#167;7</a>, <a href="2-emt.html#SP8">&#167;8</a>, <a href="2-emt.html#SP9">&#167;9</a>, <a href="2-emt.html#SP10">&#167;10</a>, <a href="2-emt.html#SP12">&#167;12</a>, <a href="2-emt.html#SP13">&#167;13</a>, <a href="2-emt.html#SP14">&#167;14</a>, <a href="2-emt.html#SP15">&#167;15</a>, <a href="2-emt.html#SP16">&#167;16</a>, <a href="2-emt.html#SP17">&#167;17</a>, <a href="2-emt.html#SP18">&#167;18</a>, <a href="2-emt.html#SP19">&#167;19</a><br/>Emit Arrays - <a href="2-ea.html#SP4">&#167;4</a>, <a href="2-ea.html#SP10">&#167;10</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">Packaging::at</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="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Packaging::at</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="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::baseline</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">Emit::baseline</span></span>:<br/><a href="2-emt.html#SP5">&#167;5</a>, <a href="2-emt.html#SP6">&#167;6</a>, <a href="2-emt.html#SP8">&#167;8</a>, <a href="2-emt.html#SP9">&#167;9</a>, <a href="2-emt.html#SP10">&#167;10</a>, <a href="2-emt.html#SP13">&#167;13</a>, <a href="2-emt.html#SP14">&#167;14</a>, <a href="2-emt.html#SP15">&#167;15</a>, <a href="2-emt.html#SP16">&#167;16</a>, <a href="2-emt.html#SP17">&#167;17</a>, <a href="2-emt.html#SP18">&#167;18</a>, <a href="2-emt.html#SP19">&#167;19</a>, <a href="2-emt.html#SP20">&#167;20</a><br/>Emit Arrays - <a href="2-ea.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::baseline</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">Emit::baseline</span></span>:<br/><a href="2-emt.html#SP4">&#167;4</a>, <a href="2-emt.html#SP5">&#167;5</a>, <a href="2-emt.html#SP7">&#167;7</a>, <a href="2-emt.html#SP8">&#167;8</a>, <a href="2-emt.html#SP9">&#167;9</a>, <a href="2-emt.html#SP12">&#167;12</a>, <a href="2-emt.html#SP13">&#167;13</a>, <a href="2-emt.html#SP14">&#167;14</a>, <a href="2-emt.html#SP15">&#167;15</a>, <a href="2-emt.html#SP16">&#167;16</a>, <a href="2-emt.html#SP17">&#167;17</a>, <a href="2-emt.html#SP18">&#167;18</a>, <a href="2-emt.html#SP19">&#167;19</a><br/>Emit Arrays - <a href="2-ea.html#SP10">&#167;10</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">Produce::baseline</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><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">Produce::baseline</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -143,7 +143,7 @@ what package it belongs to, the "context" referred to below:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::symbol_to_value_pair</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">Emit::symbol_to_value_pair</span></span>:<br/><a href="2-emt.html#SP10">&#167;10</a><br/>Emit Arrays - <a href="2-ea.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::symbol_to_value_pair</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">Emit::symbol_to_value_pair</span></span>:<br/><a href="2-emt.html#SP9">&#167;9</a><br/>Emit Arrays - <a href="2-ea.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</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#SP3" class="function-link"><span class="function-syntax">Emit::stvp_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterBookmark::package</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><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#SP3" class="function-link"><span class="function-syntax">Emit::stvp_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterBookmark::package</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">()));</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -151,7 +151,7 @@ what package it belongs to, the "context" referred to below:
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::stvp_inner</span></a><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><span class="identifier-syntax">InterBookmark::package</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><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#SP3" class="function-link"><span class="function-syntax">Emit::stvp_inner</span></a><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><span class="identifier-syntax">InterBookmark::package</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">()));</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::to_value_pair_in_context</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">Emit::to_value_pair_in_context</span></span>:<br/><a href="2-emt.html#SP11">&#167;11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">context</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">inter_pair</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::to_value_pair_in_context</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">Emit::to_value_pair_in_context</span></span>:<br/><a href="2-emt.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">context</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="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">Packaging::incarnate</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterNames::location</span><span class="plain-syntax">(</span><span class="identifier-syntax">context</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">Packaging::incarnate</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterNames::location</span><span class="plain-syntax">(</span><span class="identifier-syntax">context</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">S</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> <span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</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>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::stvp_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</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">return</span><span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::stvp_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
@ -176,33 +176,20 @@ the other three arguments are for kind constructors.
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">constructor</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">arity</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> **</span><span class="identifier-syntax">operand_kinds</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">constructor</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">arity</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> **</span><span class="identifier-syntax">operand_kinds</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">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">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">S</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> <span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</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>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">SID</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">S</span><span class="plain-syntax">) </span><span class="identifier-syntax">SID</span><span class="plain-syntax"> = </span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::symbol_id</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">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">SS</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">super</span><span class="plain-syntax">)?</span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">super</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">SS</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">super</span><span class="plain-syntax">)?</span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">super</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_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">SUP</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">SS</span><span class="plain-syntax">) </span><span class="identifier-syntax">SUP</span><span class="plain-syntax"> = </span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::symbol_id</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">SS</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">operands</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_KIND_ARITY</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">operands</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_KIND_ARITY</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">arity</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">MAX_KIND_ARITY</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"kind arity too high"</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">arity</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">MAX_KIND_ARITY</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"kind arity too high"</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">&lt;</span><span class="identifier-syntax">arity</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">&lt;</span><span class="identifier-syntax">arity</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">operand_kinds</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] == </span><span class="identifier-syntax">K_nil</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">operand_kinds</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] == </span><span class="identifier-syntax">K_void</span><span class="plain-syntax">)) </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</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">operand_kinds</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] == </span><span class="identifier-syntax">K_nil</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">operand_kinds</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] == </span><span class="identifier-syntax">K_void</span><span class="plain-syntax">)) </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</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">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] = </span><span class="identifier-syntax">Produce::kind_to_TID</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">operand_kinds</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="identifier-syntax">operands</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] = </span><span class="identifier-syntax">Produce::kind_to_TID</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">operand_kinds</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><a href="2-emt.html#SP5" class="function-link"><span class="function-syntax">Emit::kind_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">SID</span><span class="plain-syntax">, </span><span class="identifier-syntax">SUP</span><span class="plain-syntax">, </span><span class="identifier-syntax">constructor</span><span class="plain-syntax">, </span><span class="identifier-syntax">arity</span><span class="plain-syntax">, </span><span class="identifier-syntax">operands</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">TypenameInstruction::new</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">constructor</span><span class="plain-syntax">, </span><span class="identifier-syntax">SS</span><span class="plain-syntax">, </span><span class="identifier-syntax">arity</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">, </span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::baseline</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="identifier-syntax">InterNames::to_symbol</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">InterNames::to_symbol</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">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><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> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. </b>The above both use: <p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. </b>Default values for kinds are emitted thus. This is inefficient and maybe ought
</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">Emit::kind_inner</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">Emit::kind_inner</span></span>:<br/><a href="2-emt.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">SID</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">SUP</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">constructor</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">arity</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">operands</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">TypenameInstruction::new</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">SID</span><span class="plain-syntax">, </span><span class="identifier-syntax">constructor</span><span class="plain-syntax">, </span><span class="identifier-syntax">SUP</span><span class="plain-syntax">, </span><span class="identifier-syntax">arity</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">, </span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::baseline</span></a><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="SP6" class="paragraph-anchor"></a><b>&#167;6. </b>Default values for kinds are emitted thus. This is inefficient and maybe ought
to be replaced by a hash, but the list is short and the function is called to be replaced by a hash, but the list is short and the function is called
so little that it probably makes little difference. so little that it probably makes little difference.
</p> </p>
@ -210,7 +197,7 @@ so little that it probably makes little difference.
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">default_values_written</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span> <span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">default_values_written</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::ensure_defaultvalue</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">Emit::ensure_defaultvalue</span></span>:<br/>Properties - <a href="5-prp.html#SP7">&#167;7</a></span></button><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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::ensure_defaultvalue</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">Emit::ensure_defaultvalue</span></span>:<br/>Properties - <a href="5-prp.html#SP7">&#167;7</a></span></button><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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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_values_written</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">default_values_written</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind</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_values_written</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">default_values_written</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax">;</span>
@ -227,42 +214,42 @@ so little that it probably makes little difference.
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. Pragmas. </b>The Inter language allows pragmas, or code-generation hints, to be passed <p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. Pragmas. </b>The Inter language allows pragmas, or code-generation hints, to be passed
through. These are specific to the target of compilation, and can be ignored through. These are specific to the target of compilation, and can be ignored
by all other targets. Here we generate only I6-target pragmas, which are commands by all other targets. Here we generate only I6-target pragmas, which are commands
in I6's "Inform Control Language". in I6's "Inform Control Language".
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::pragma</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Emit::pragma</span></span>:<br/>Use Options - <a href="3-uo.html#SP1_1">&#167;1.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::pragma</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">Emit::pragma</span></span>:<br/>Use Options - <a href="3-uo.html#SP1_1">&#167;1.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</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><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><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><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LargeScale::emit_pragma</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">"Inform6"</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">LargeScale::emit_pragma</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">"Inform6"</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>&#167;8. Constants. </b>These functions make it easy to define a named value in Inter. If the value is <p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. Constants. </b>These functions make it easy to define a named value in Inter. If the value is
an unsigned numeric constant, use one of these two functions &mdash; the first if an unsigned numeric constant, use one of these two functions &mdash; the first if
it represents an actual number at run-time, the second if not: it represents an actual number at run-time, the second if not:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <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('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Emit::numeric_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">&#167;23</a><br/>Compilation Units - <a href="2-cu.html#SP2_1_2">&#167;2.1.2</a><br/>The Heap - <a href="2-th.html#SP2">&#167;2</a><br/>Completion Module - <a href="3-cm.html#SP1_5">&#167;1.5</a>, <a href="3-cm.html#SP1_6">&#167;1.6</a>, <a href="3-cm.html#SP1_7">&#167;1.7</a>, <a href="3-cm.html#SP1_8">&#167;1.8</a>, <a href="3-cm.html#SP1_11_1">&#167;1.11.1</a><br/>Use Options - <a href="3-uo.html#SP1">&#167;1</a>, <a href="3-uo.html#SP1_2">&#167;1.2</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a><br/>Activities - <a href="5-act.html#SP7">&#167;7</a><br/>Chronology - <a href="5-chr.html#SP3_3">&#167;3.3</a>, <a href="5-chr.html#SP7_1">&#167;7.1</a><br/>Conjugations - <a href="5-cnj.html#SP12">&#167;12</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">&#167;2.1.1.1.3</a>, <a href="5-tbl.html#SP2_3">&#167;2.3</a><br/>Table Columns - <a href="5-tc.html#SP2">&#167;2</a><br/>Rules - <a href="5-rls.html#SP12_2">&#167;12.2</a><br/>Rulebooks - <a href="5-rlb.html#SP7_2">&#167;7.2</a><br/>Variables - <a href="5-vrb.html#SP14">&#167;14</a><br/>Properties - <a href="5-prp.html#SP7_3">&#167;7.3</a><br/>Relations - <a href="5-rlt.html#SP6">&#167;6</a>, <a href="5-rlt.html#SP11_3">&#167;11.3</a><br/>Kind Constructors - <a href="5-kc.html#SP10">&#167;10</a><br/>Kind IDs - <a href="5-ki.html#SP9_2">&#167;9.2</a><br/>Actions - <a href="5-act2.html#SP8_1">&#167;8.1</a>, <a href="5-act2.html#SP8_3">&#167;8.3</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_6">&#167;1.6</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP1">&#167;1</a><br/>Command Grammars - <a href="7-cg.html#SP2">&#167;2</a>, <a href="7-cg.html#SP10">&#167;10</a>, <a href="7-cg.html#SP15">&#167;15</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('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Emit::numeric_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">&#167;23</a><br/>Compilation Units - <a href="2-cu.html#SP2_1_2">&#167;2.1.2</a><br/>The Heap - <a href="2-th.html#SP2">&#167;2</a><br/>Completion Module - <a href="3-cm.html#SP1_5">&#167;1.5</a>, <a href="3-cm.html#SP1_6">&#167;1.6</a>, <a href="3-cm.html#SP1_7">&#167;1.7</a>, <a href="3-cm.html#SP1_8">&#167;1.8</a>, <a href="3-cm.html#SP1_11_1">&#167;1.11.1</a><br/>Use Options - <a href="3-uo.html#SP1">&#167;1</a>, <a href="3-uo.html#SP1_2">&#167;1.2</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a><br/>Activities - <a href="5-act.html#SP7">&#167;7</a><br/>Chronology - <a href="5-chr.html#SP3_3">&#167;3.3</a>, <a href="5-chr.html#SP7_1">&#167;7.1</a><br/>Conjugations - <a href="5-cnj.html#SP12">&#167;12</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">&#167;2.1.1.1.3</a>, <a href="5-tbl.html#SP2_3">&#167;2.3</a><br/>Table Columns - <a href="5-tc.html#SP2">&#167;2</a><br/>Rules - <a href="5-rls.html#SP12_2">&#167;12.2</a><br/>Rulebooks - <a href="5-rlb.html#SP7_2">&#167;7.2</a><br/>Variables - <a href="5-vrb.html#SP14">&#167;14</a><br/>Properties - <a href="5-prp.html#SP7_3">&#167;7.3</a><br/>Relations - <a href="5-rlt.html#SP6">&#167;6</a>, <a href="5-rlt.html#SP11_3">&#167;11.3</a><br/>Kind Constructors - <a href="5-kc.html#SP10">&#167;10</a><br/>Kind IDs - <a href="5-ki.html#SP9_2">&#167;9.2</a><br/>Actions - <a href="5-act2.html#SP8_1">&#167;8.1</a>, <a href="5-act2.html#SP8_3">&#167;8.3</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_6">&#167;1.6</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP1">&#167;1</a><br/>Command Grammars - <a href="7-cg.html#SP2">&#167;2</a>, <a href="7-cg.html#SP10">&#167;10</a>, <a href="7-cg.html#SP15">&#167;15</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#SP8" 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">INT32_ITCONC</span><span class="plain-syntax">, </span><span class="identifier-syntax">INVALID_IANN</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#SP7" 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">INT32_ITCONC</span><span class="plain-syntax">, </span><span class="identifier-syntax">INVALID_IANN</span><span class="plain-syntax">);</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_hex</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Emit::named_numeric_constant_hex</span></span>:<br/>Relations - <a href="5-rlt.html#SP1">&#167;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::named_numeric_constant_hex</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">Emit::named_numeric_constant_hex</span></span>:<br/>Relations - <a href="5-rlt.html#SP1">&#167;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#SP8" 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">INT32_ITCONC</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="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-emt.html#SP7" 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">INT32_ITCONC</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="plain-syntax">}</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::named_unchecked_constant_hex</span><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::named_unchecked_constant_hex</span><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#SP8" 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_ITCONC</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="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-emt.html#SP7" 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_ITCONC</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="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('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Emit::named_numeric_constant_signed</span></span>:<br/>Conjugations - <a href="5-cnj.html#SP1">&#167;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="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('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Emit::named_numeric_constant_signed</span></span>:<br/>Conjugations - <a href="5-cnj.html#SP1">&#167;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#SP8" 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">INT32_ITCONC</span><span class="plain-syntax">, </span><span class="identifier-syntax">SIGNED_IANN</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#SP7" 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">INT32_ITCONC</span><span class="plain-syntax">, </span><span class="identifier-syntax">SIGNED_IANN</span><span class="plain-syntax">);</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::unchecked_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::unchecked_numeric_constant</span></span>:<br/>Actions - <a href="5-act2.html#SP8_2">&#167;8.2</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_3">&#167;1.3</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP9">&#167;9</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::unchecked_numeric_constant</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Emit::unchecked_numeric_constant</span></span>:<br/>Actions - <a href="5-act2.html#SP8_2">&#167;8.2</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_3">&#167;1.3</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP9">&#167;9</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#SP8" 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_ITCONC</span><span class="plain-syntax">, </span><span class="identifier-syntax">INVALID_IANN</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#SP7" 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_ITCONC</span><span class="plain-syntax">, </span><span class="identifier-syntax">INVALID_IANN</span><span class="plain-syntax">);</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::numeric_constant_inner</span><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_inner</span><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>
@ -277,11 +264,11 @@ 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><span class="identifier-syntax">con_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">con_iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. </b>Text: <p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>&#167;8. </b>Text:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::text_constant</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Emit::text_constant</span></span>:<br/><a href="2-emt.html#SP12">&#167;12</a><br/>Hierarchy - <a href="2-hrr.html#SP23">&#167;23</a><br/>Completion Module - <a href="3-cm.html#SP1_1">&#167;1.1</a>, <a href="3-cm.html#SP1_2">&#167;1.2</a>, <a href="3-cm.html#SP1_3">&#167;1.3</a>, <a href="3-cm.html#SP1_4">&#167;1.4</a><br/>Text Literals - <a href="4-tl.html#SP4">&#167;4</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a><br/>Rulebooks - <a href="5-rlb.html#SP14_2">&#167;14.2</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_1">&#167;1.1</a>, <a href="6-bd.html#SP1_2">&#167;1.2</a>, <a href="6-bd.html#SP1_3">&#167;1.3</a>, <a href="6-bd.html#SP1_5">&#167;1.5</a>, <a href="6-bd.html#SP1_6">&#167;1.6</a>, <a href="6-bd.html#SP2">&#167;2</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">contents</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::text_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::text_constant</span></span>:<br/><a href="2-emt.html#SP11">&#167;11</a><br/>Hierarchy - <a href="2-hrr.html#SP23">&#167;23</a><br/>Completion Module - <a href="3-cm.html#SP1_1">&#167;1.1</a>, <a href="3-cm.html#SP1_2">&#167;1.2</a>, <a href="3-cm.html#SP1_3">&#167;1.3</a>, <a href="3-cm.html#SP1_4">&#167;1.4</a><br/>Text Literals - <a href="4-tl.html#SP4">&#167;4</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a><br/>Rulebooks - <a href="5-rlb.html#SP14_2">&#167;14.2</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_1">&#167;1.1</a>, <a href="6-bd.html#SP1_2">&#167;1.2</a>, <a href="6-bd.html#SP1_3">&#167;1.3</a>, <a href="6-bd.html#SP1_5">&#167;1.5</a>, <a href="6-bd.html#SP1_6">&#167;1.6</a>, <a href="6-bd.html#SP2">&#167;2</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">contents</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">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">InterNames::to_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">con_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_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">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">ConstantInstruction::new</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><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">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">ConstantInstruction::new</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">con_s</span><span class="plain-syntax">,</span>
@ -290,11 +277,11 @@ it represents an actual number at run-time, the second if not:
<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><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> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. </b>And equating one constant to another named constant: <p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. </b>And equating one constant to another named constant:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <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('usagePopup21')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup21">Usage of <span class="code-font"><span class="function-syntax">Emit::iname_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">&#167;23</a><br/>Instance Counting - <a href="2-ic.html#SP8">&#167;8</a><br/>Short Names - <a href="2-sn.html#SP2">&#167;2</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a><br/>Activities - <a href="5-act.html#SP7">&#167;7</a><br/>Chronology - <a href="5-chr.html#SP4">&#167;4</a>, <a href="5-chr.html#SP8">&#167;8</a><br/>Conjugations - <a href="5-cnj.html#SP12">&#167;12</a><br/>Scene Instances - <a href="5-si.html#SP3">&#167;3</a>, <a href="5-si.html#SP7">&#167;7</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">&#167;2.1.1.1.3</a><br/>Rulebooks - <a href="5-rlb.html#SP7_4">&#167;7.4</a>, <a href="5-rlb.html#SP14_3">&#167;14.3</a><br/>Relations - <a href="5-rlt.html#SP5">&#167;5</a>, <a href="5-rlt.html#SP6">&#167;6</a>, <a href="5-rlt.html#SP7_2">&#167;7.2</a><br/>Kind Constructors - <a href="5-kc.html#SP4">&#167;4</a><br/>Kind IDs - <a href="5-ki.html#SP6">&#167;6</a>, <a href="5-ki.html#SP9_2">&#167;9.2</a><br/>Actions - <a href="5-act2.html#SP8_3">&#167;8.3</a>, <a href="5-act2.html#SP8_4">&#167;8.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="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('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Emit::iname_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">&#167;23</a><br/>Instance Counting - <a href="2-ic.html#SP8">&#167;8</a><br/>Short Names - <a href="2-sn.html#SP2">&#167;2</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a><br/>Activities - <a href="5-act.html#SP7">&#167;7</a><br/>Chronology - <a href="5-chr.html#SP4">&#167;4</a>, <a href="5-chr.html#SP8">&#167;8</a><br/>Conjugations - <a href="5-cnj.html#SP12">&#167;12</a><br/>Scene Instances - <a href="5-si.html#SP3">&#167;3</a>, <a href="5-si.html#SP7">&#167;7</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">&#167;2.1.1.1.3</a><br/>Rulebooks - <a href="5-rlb.html#SP7_4">&#167;7.4</a>, <a href="5-rlb.html#SP14_3">&#167;14.3</a><br/>Relations - <a href="5-rlt.html#SP5">&#167;5</a>, <a href="5-rlt.html#SP6">&#167;6</a>, <a href="5-rlt.html#SP7_2">&#167;7.2</a><br/>Kind Constructors - <a href="5-kc.html#SP4">&#167;4</a><br/>Kind IDs - <a href="5-ki.html#SP6">&#167;6</a>, <a href="5-ki.html#SP9_2">&#167;9.2</a><br/>Actions - <a href="5-act2.html#SP8_3">&#167;8.3</a>, <a href="5-act2.html#SP8_4">&#167;8.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="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">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">InterNames::to_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">con_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_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">val_s</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">val_iname</span><span class="plain-syntax">)?</span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val_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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_s</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">val_iname</span><span class="plain-syntax">)?</span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val_iname</span><span class="plain-syntax">):</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
@ -311,48 +298,48 @@ 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><span class="identifier-syntax">con_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">con_iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. </b>These two variants are needed only for the oddball way <a href="6-bd.html" class="internal">Bibliographic Data</a> <p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. </b>These two variants are needed only for the oddball way <a href="6-bd.html" class="internal">Bibliographic Data</a>
is compiled. is compiled.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::text_constant_from_wide_string</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::text_constant_from_wide_string</span></span>:<br/>Bibliographic Data - <a href="6-bd.html#SP1_1">&#167;1.1</a>, <a href="6-bd.html#SP1_2">&#167;1.2</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">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">str</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::text_constant_from_wide_string</span><button class="popup" onclick="togglePopup('usagePopup21')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup21">Usage of <span class="code-font"><span class="function-syntax">Emit::text_constant_from_wide_string</span></span>:<br/>Bibliographic Data - <a href="6-bd.html#SP1_1">&#167;1.1</a>, <a href="6-bd.html#SP1_2">&#167;1.2</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">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">str</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">iname</span><span class="plain-syntax"> = </span><a href="4-tl.html#SP4" class="function-link"><span class="function-syntax">TextLiterals::to_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Feeds::feed_C_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">str</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">iname</span><span class="plain-syntax"> = </span><a href="4-tl.html#SP4" class="function-link"><span class="function-syntax">TextLiterals::to_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Feeds::feed_C_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">str</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP13" class="function-link"><span class="function-syntax">Emit::named_generic_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP12" class="function-link"><span class="function-syntax">Emit::named_generic_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::to_value_pair_in_context</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::to_value_pair_in_context</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</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">Emit::serial_number</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">Emit::serial_number</span></span>:<br/>Bibliographic Data - <a href="6-bd.html#SP1_5">&#167;1.5</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">serial</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::serial_number</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::serial_number</span></span>:<br/>Bibliographic Data - <a href="6-bd.html#SP1_5">&#167;1.5</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">serial</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">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_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterValuePairs::from_text</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">serial</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterValuePairs::from_text</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">serial</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP13" class="function-link"><span class="function-syntax">Emit::named_generic_constant</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="plain-syntax"> </span><a href="2-emt.html#SP12" class="function-link"><span class="function-syntax">Emit::named_generic_constant</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="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><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> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. </b>Similarly, there are just a few occasions when we need to extract the value <p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. </b>Similarly, there are just a few occasions when we need to extract the value
of a "variable" and define it as a constant: of a "variable" and define it as a constant:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::initial_value_as_constant</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">Emit::initial_value_as_constant</span></span>:<br/>Variables - <a href="5-vrb.html#SP14">&#167;14</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_1">&#167;1.1</a>, <a href="6-bd.html#SP1_2">&#167;1.2</a>, <a href="6-bd.html#SP1_3">&#167;1.3</a>, <a href="6-bd.html#SP1_4">&#167;1.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="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::initial_value_as_constant</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">Emit::initial_value_as_constant</span></span>:<br/>Variables - <a href="5-vrb.html#SP14">&#167;14</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_1">&#167;1.1</a>, <a href="6-bd.html#SP1_2">&#167;1.2</a>, <a href="6-bd.html#SP1_3">&#167;1.3</a>, <a href="6-bd.html#SP1_4">&#167;1.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="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP13" class="function-link"><span class="function-syntax">Emit::named_generic_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP12" class="function-link"><span class="function-syntax">Emit::named_generic_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="5-vrb.html#SP15" class="function-link"><span class="function-syntax">RTVariables::initial_value_as_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">var</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><a href="5-vrb.html#SP15" class="function-link"><span class="function-syntax">RTVariables::initial_value_as_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">var</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">Emit::initial_value_as_raw_text</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::initial_value_as_raw_text</span></span>:<br/>Bibliographic Data - <a href="6-bd.html#SP1_1">&#167;1.1</a>, <a href="6-bd.html#SP1_2">&#167;1.2</a>, <a href="6-bd.html#SP1_3">&#167;1.3</a>, <a href="6-bd.html#SP1_6">&#167;1.6</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">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::initial_value_as_raw_text</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">Emit::initial_value_as_raw_text</span></span>:<br/>Bibliographic Data - <a href="6-bd.html#SP1_1">&#167;1.1</a>, <a href="6-bd.html#SP1_2">&#167;1.2</a>, <a href="6-bd.html#SP1_3">&#167;1.3</a>, <a href="6-bd.html#SP1_6">&#167;1.6</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">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var</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">NonlocalVariables::initial_value_as_plain_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">var</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">NonlocalVariables::initial_value_as_plain_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">var</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">CONTENT</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">CONTENT</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BibliographicData::compile_bibliographic_text</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">BibliographicData::compile_bibliographic_text</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">Lexer::word_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)), </span><span class="identifier-syntax">XML_BIBTEXT_MODE</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Lexer::word_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)), </span><span class="identifier-syntax">XML_BIBTEXT_MODE</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::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</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-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</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">DISCARD_TEXT</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">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">CONTENT</span><span class="plain-syntax">)</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. </b>The above make use of this: <p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. </b>The above make use of this:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::named_generic_constant</span><button class="popup" onclick="togglePopup('usagePopup26')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup26">Usage of <span class="code-font"><span class="function-syntax">Emit::named_generic_constant</span></span>:<br/><a href="2-emt.html#SP11">&#167;11</a>, <a href="2-emt.html#SP12">&#167;12</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_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::named_generic_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::named_generic_constant</span></span>:<br/><a href="2-emt.html#SP10">&#167;10</a>, <a href="2-emt.html#SP11">&#167;11</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_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</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">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">InterNames::to_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">con_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_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">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">ConstantInstruction::new</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><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">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">ConstantInstruction::new</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">con_s</span><span class="plain-syntax">,</span>
@ -360,10 +347,10 @@ of a "variable" and define it as a constant:
<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><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> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. Instances. </b></p> <p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. Instances. </b></p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::instance</span><button class="popup" onclick="togglePopup('usagePopup27')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup27">Usage of <span class="code-font"><span class="function-syntax">Emit::instance</span></span>:<br/>Instances - <a href="5-ins.html#SP4">&#167;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">inst_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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">v</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::instance</span><button class="popup" onclick="togglePopup('usagePopup26')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup26">Usage of <span class="code-font"><span class="function-syntax">Emit::instance</span></span>:<br/>Instances - <a href="5-ins.html#SP4">&#167;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">inst_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="reserved-syntax">int</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">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">inst_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">inst_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">inst_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">inst_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">inst_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">inst_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">v</span><span class="plain-syntax"> ? </span><span class="identifier-syntax">InterValuePairs::number</span><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">v</span><span class="plain-syntax">) : </span><span class="identifier-syntax">InterValuePairs::undef</span><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">v</span><span class="plain-syntax"> ? </span><span class="identifier-syntax">InterValuePairs::number</span><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">v</span><span class="plain-syntax">) : </span><span class="identifier-syntax">InterValuePairs::undef</span><span class="plain-syntax">();</span>
@ -372,25 +359,25 @@ of a "variable" and define it as a constant:
<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><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> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. Variables. </b></p> <p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. Variables. </b></p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::variable</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">Emit::variable</span></span>:<br/>Variables - <a href="5-vrb.html#SP14">&#167;14</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_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_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::variable</span><button class="popup" onclick="togglePopup('usagePopup27')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup27">Usage of <span class="code-font"><span class="function-syntax">Emit::variable</span></span>:<br/>Variables - <a href="5-vrb.html#SP14">&#167;14</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var_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_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</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">var_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">var_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">var_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">var_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">var_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">var_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterTypes::unchecked</span><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><span class="identifier-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterTypes::unchecked</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">K</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">K</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="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">K</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">type</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterTypes::from_type_name</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> <span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterTypes::from_type_name</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>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">VariableInstruction::new</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">(),</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">VariableInstruction::new</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">var_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">type</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::symbol_id</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">var_s</span><span class="plain-syntax">), </span><span class="identifier-syntax">type</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::baseline</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="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::baseline</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="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><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><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">var_s</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">var_s</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. Properties and permissions. </b></p> <p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. Properties and permissions. </b></p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::property</span><button class="popup" onclick="togglePopup('usagePopup29')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup29">Usage of <span class="code-font"><span class="function-syntax">Emit::property</span></span>:<br/>Properties - <a href="5-prp.html#SP7_1">&#167;7.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">prop_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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::property</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">Emit::property</span></span>:<br/>Properties - <a href="5-prp.html#SP7_1">&#167;7.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">prop_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="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">prop_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">prop_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">prop_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop_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">prop_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterTypes::unchecked</span><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><span class="identifier-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterTypes::unchecked</span><span class="plain-syntax">();</span>
@ -400,7 +387,7 @@ of a "variable" and define it as a constant:
<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><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> <span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::permission</span><button class="popup" onclick="togglePopup('usagePopup30')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup30">Usage of <span class="code-font"><span class="function-syntax">Emit::permission</span></span>:<br/>Property Permissions - <a href="6-pp.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">storage_iname</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::permission</span><button class="popup" onclick="togglePopup('usagePopup29')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup29">Usage of <span class="code-font"><span class="function-syntax">Emit::permission</span></span>:<br/>Property Permissions - <a href="6-pp.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">storage_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">prop_iname</span><span class="plain-syntax"> = </span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</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">prop_iname</span><span class="plain-syntax"> = </span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</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">store_s</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">storage_iname</span><span class="plain-syntax">)?</span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">storage_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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">store_s</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">storage_iname</span><span class="plain-syntax">)?</span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">storage_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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop_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">prop_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop_iname</span><span class="plain-syntax">);</span>
@ -408,17 +395,17 @@ of a "variable" and define it as a constant:
<span class="plain-syntax"> </span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::baseline</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="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::baseline</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="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>&#167;17. Property values. </b></p> <p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. Property values. </b></p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::propertyvalue</span><button class="popup" onclick="togglePopup('usagePopup31')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup31">Usage of <span class="code-font"><span class="function-syntax">Emit::propertyvalue</span></span>:<br/>Property Values - <a href="6-pv.html#SP2_2_1">&#167;2.2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::propertyvalue</span><button class="popup" onclick="togglePopup('usagePopup30')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup30">Usage of <span class="code-font"><span class="function-syntax">Emit::propertyvalue</span></span>:<br/>Property Values - <a href="6-pv.html#SP2_2_1">&#167;2.2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</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">prop_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::iname</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="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::iname</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="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">owner</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">owner_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">PropertyValueInstruction::new</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">prop_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">PropertyValueInstruction::new</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">prop_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::baseline</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="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::baseline</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="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>&#167;18. Private, keep out. </b>The following should be called only by <a href="../imperative-module/3-fnc.html" class="internal">Functions (in imperative)</a>, which provides <p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>&#167;17. Private, keep out. </b>The following should be called only by <a href="../imperative-module/3-fnc.html" class="internal">Functions (in imperative)</a>, which provides
the real API for starting and ending functions. the real API for starting and ending functions.
</p> </p>
@ -431,7 +418,7 @@ the real API for starting and ending functions.
<span class="plain-syntax"> </span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::baseline</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="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::baseline</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="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. Interventions. </b>These should be used as little as possible, and perhaps it may one day be possible <p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>&#167;18. Interventions. </b>These should be used as little as possible, and perhaps it may one day be possible
to abolish them altogether. They insert direct kit material (i.e. paraphrased Inter to abolish them altogether. They insert direct kit material (i.e. paraphrased Inter
code written out as plain text in Inform 6 notation) into bytecode; this is then code written out as plain text in Inform 6 notation) into bytecode; this is then
assimilating during linking. Note that only the raw i6 is actually carried over assimilating during linking. Note that only the raw i6 is actually carried over
@ -440,16 +427,16 @@ about where to include the code is ignored.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::intervention</span><button class="popup" onclick="togglePopup('usagePopup32')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup32">Usage of <span class="code-font"><span class="function-syntax">Emit::intervention</span></span>:<br/>Interventions - <a href="2-int.html#SP1">&#167;1</a>, <a href="2-int.html#SP3">&#167;3</a></span></button><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="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">segment</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">part</span><span class="plain-syntax">,</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::intervention</span><button class="popup" onclick="togglePopup('usagePopup31')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup31">Usage of <span class="code-font"><span class="function-syntax">Emit::intervention</span></span>:<br/>Interventions - <a href="2-int.html#SP1">&#167;1</a>, <a href="2-int.html#SP3">&#167;3</a></span></button><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="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">segment</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">part</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">i6</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">seg</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">i6</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">seg</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">InsertInstruction::new</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">i6</span><span class="plain-syntax">, </span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::baseline</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="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">InsertInstruction::new</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">i6</span><span class="plain-syntax">, </span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::baseline</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="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>&#167;20. </b>And this is a similarly inelegant construction: <p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. </b>And this is a similarly inelegant construction:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::append</span><button class="popup" onclick="togglePopup('usagePopup33')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup33">Usage of <span class="code-font"><span class="function-syntax">Emit::append</span></span>:<br/>Interventions - <a href="2-int.html#SP2">&#167;2</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="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::append</span><button class="popup" onclick="togglePopup('usagePopup32')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup32">Usage of <span class="code-font"><span class="function-syntax">Emit::append</span></span>:<br/>Interventions - <a href="2-int.html#SP2">&#167;2</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="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</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">"Append '%S'\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</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">"Append '%S'\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</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">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">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">symbol</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> <span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symbol</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>

File diff suppressed because one or more lines are too long

View file

@ -265,9 +265,9 @@ compile time.
<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><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::first_instance_iname</span></a><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::first_instance_iname</span></a><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">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax"> = </span><a href="2-ic.html#SP7" class="function-link"><span class="function-syntax">InstanceCounting::next_in_IK_sequence</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</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">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax"> = </span><a href="2-ic.html#SP7" class="function-link"><span class="function-syntax">InstanceCounting::next_in_IK_sequence</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</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">next</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">next</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">, </span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">next</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::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">, </span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">next</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">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</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::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>

View file

@ -113,7 +113,7 @@ raw I6 matter into the Inter tree.
<span class="plain-syntax"> </span><span class="identifier-syntax">source_text_intervention</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sti</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">source_text_intervention</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sti</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">sti</span><span class="plain-syntax">, </span><span class="identifier-syntax">source_text_intervention</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">sti</span><span class="plain-syntax">, </span><span class="identifier-syntax">source_text_intervention</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">sti</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">infs_to_include_with</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">sti</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">infs_to_include_with</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP19" class="function-link"><span class="function-syntax">Emit::intervention</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sti</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">stage</span><span class="plain-syntax">, </span><span class="identifier-syntax">sti</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">segment</span><span class="plain-syntax">, </span><span class="identifier-syntax">sti</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">part</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP18" class="function-link"><span class="function-syntax">Emit::intervention</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sti</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">stage</span><span class="plain-syntax">, </span><span class="identifier-syntax">sti</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">segment</span><span class="plain-syntax">, </span><span class="identifier-syntax">sti</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">part</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="2-int.html#SP4" class="function-link"><span class="function-syntax">Interventions::expand_bracket_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sti</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">matter</span><span class="plain-syntax">), </span><span class="identifier-syntax">sti</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">seg</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-int.html#SP4" class="function-link"><span class="function-syntax">Interventions::expand_bracket_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sti</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">matter</span><span class="plain-syntax">), </span><span class="identifier-syntax">sti</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">seg</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
@ -125,7 +125,7 @@ raw I6 matter into the Inter tree.
<span class="plain-syntax"> </span><span class="identifier-syntax">source_text_intervention</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sti</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">source_text_intervention</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sti</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">sti</span><span class="plain-syntax">, </span><span class="identifier-syntax">source_text_intervention</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">sti</span><span class="plain-syntax">, </span><span class="identifier-syntax">source_text_intervention</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">sti</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">infs_to_include_with</span><span class="plain-syntax"> == </span><span class="identifier-syntax">infs</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">sti</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">infs_to_include_with</span><span class="plain-syntax"> == </span><span class="identifier-syntax">infs</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP20" class="function-link"><span class="function-syntax">Emit::append</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><a href="2-int.html#SP4" class="function-link"><span class="function-syntax">Interventions::expand_bracket_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sti</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">matter</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP19" class="function-link"><span class="function-syntax">Emit::append</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><a href="2-int.html#SP4" class="function-link"><span class="function-syntax">Interventions::expand_bracket_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sti</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">matter</span><span class="plain-syntax">));</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>Thirdly, from use options: <p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>Thirdly, from use options:
@ -133,7 +133,7 @@ raw I6 matter into the Inter tree.
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Interventions::from_use_option</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">Interventions::from_use_option</span></span>:<br/>Use Options - <a href="3-uo.html#SP1_3">&#167;1.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">S</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Interventions::from_use_option</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">Interventions::from_use_option</span></span>:<br/>Use Options - <a href="3-uo.html#SP1_3">&#167;1.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">S</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP19" class="function-link"><span class="function-syntax">Emit::intervention</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EARLY_LINK_STAGE</span><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="plain-syntax"> </span><a href="2-emt.html#SP18" class="function-link"><span class="function-syntax">Emit::intervention</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EARLY_LINK_STAGE</span><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="plain-syntax"> </span><a href="2-int.html#SP4" class="function-link"><span class="function-syntax">Interventions::expand_bracket_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">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="2-int.html#SP4" class="function-link"><span class="function-syntax">Interventions::expand_bracket_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">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="plain-syntax">}</span>
</pre> </pre>

View file

@ -100,7 +100,7 @@ define it to be equivalent to regular short name, thus:
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ShortNames::compile_cap_short_name</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">ShortNames::compile_cap_short_name</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P_cap_short_name</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">P_cap_short_name</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_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">CAPSHORTNAME_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">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">CAPSHORTNAME_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><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><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">SHORT_NAME_HL</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::iname_constant</span></a><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><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">SHORT_NAME_HL</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">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">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>

View file

@ -107,9 +107,9 @@ has essentially no memory constraints compared with the Z-machine.
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">max_heap</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">total_heap_allocation</span><span class="plain-syntax">) </span><span class="identifier-syntax">max_heap</span><span class="plain-syntax"> = </span><span class="identifier-syntax">max_heap</span><span class="plain-syntax">*2;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">max_heap</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">total_heap_allocation</span><span class="plain-syntax">) </span><span class="identifier-syntax">max_heap</span><span class="plain-syntax"> = </span><span class="identifier-syntax">max_heap</span><span class="plain-syntax">*2;</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><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">MEMORY_HEAP_SIZE_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">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">MEMORY_HEAP_SIZE_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">TargetVMs::is_16_bit</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::vm</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">TargetVMs::is_16_bit</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::vm</span><span class="plain-syntax">()))</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">max_heap</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">max_heap</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">else</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (4*</span><span class="identifier-syntax">max_heap</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (4*</span><span class="identifier-syntax">max_heap</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">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">iname</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">"Providing for a total heap of %d, given requirement of %d\n"</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">"Providing for a total heap of %d, given requirement of %d\n"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">max_heap</span><span class="plain-syntax">, </span><span class="identifier-syntax">total_heap_allocation</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">max_heap</span><span class="plain-syntax">, </span><span class="identifier-syntax">total_heap_allocation</span><span class="plain-syntax">);</span>

View file

@ -99,7 +99,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">vn</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">vn</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">vn</span><span class="plain-syntax">, </span><span class="string-syntax">"[[Version Number]]"</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">vn</span><span class="plain-syntax">, </span><span class="string-syntax">"[[Version Number]]"</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">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">I7_VERSION_NUMBER_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">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">I7_VERSION_NUMBER_HL</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::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">vn</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">vn</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">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">iname</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">vn</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">vn</span><span class="plain-syntax">)</span>
</pre> </pre>
@ -111,7 +111,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">svn</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">svn</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">svn</span><span class="plain-syntax">, </span><span class="string-syntax">"[[Semantic Version Number]]"</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">svn</span><span class="plain-syntax">, </span><span class="string-syntax">"[[Semantic Version Number]]"</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">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">I7_FULL_VERSION_NUMBER_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">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">I7_FULL_VERSION_NUMBER_HL</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::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">svn</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">svn</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">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">iname</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">svn</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">svn</span><span class="plain-syntax">)</span>
</pre> </pre>
@ -127,10 +127,10 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">ExtensionIndex::plot_icon</span><span class="plain-syntax">(</span><span class="identifier-syntax">icon</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">ExtensionIndex::plot_icon</span><span class="plain-syntax">(</span><span class="identifier-syntax">icon</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">TargetVMs::write</span><span class="plain-syntax">(</span><span class="identifier-syntax">vm</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">TargetVMs::write</span><span class="plain-syntax">(</span><span class="identifier-syntax">vm</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">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">VM_MD_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">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">VM_MD_HL</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::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">vm</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">vm</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">VM</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">VM_image</span><span class="plain-syntax">) &gt; </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">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">VM</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">VM_image</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</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">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">VM_ICON_MD_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">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">VM_ICON_MD_HL</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::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">VM</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">VM_image</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">VM</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">VM_image</span><span class="plain-syntax">);</span>
<span class="plain-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">vm</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">vm</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">icon</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">icon</span><span class="plain-syntax">)</span>
@ -145,10 +145,10 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::list_plugins</span><span class="plain-syntax">(</span><span class="identifier-syntax">inc</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">PluginManager::list_plugins</span><span class="plain-syntax">(</span><span class="identifier-syntax">inc</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">PluginManager::list_plugins</span><span class="plain-syntax">(</span><span class="identifier-syntax">exc</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">PluginManager::list_plugins</span><span class="plain-syntax">(</span><span class="identifier-syntax">exc</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_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">LANGUAGE_ELEMENTS_USED_MD_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">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">LANGUAGE_ELEMENTS_USED_MD_HL</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::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inc</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inc</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">exc</span><span class="plain-syntax">) &gt; </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">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">exc</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</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">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">LANGUAGE_ELEMENTS_NOT_USED_MD_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">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">LANGUAGE_ELEMENTS_NOT_USED_MD_HL</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::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">exc</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">exc</span><span class="plain-syntax">);</span>
<span class="plain-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">inc</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">inc</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">exc</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">exc</span><span class="plain-syntax">)</span>
@ -160,9 +160,9 @@ function togglePopup(material_id) {
<pre class="displayed-code all-displayed-code code-font"> <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><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">MEMORY_ECONOMY_MD_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">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">MEMORY_ECONOMY_MD_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">global_compilation_settings</span><span class="plain-syntax">.</span><span class="identifier-syntax">memory_economy_in_force</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">global_compilation_settings</span><span class="plain-syntax">.</span><span class="identifier-syntax">memory_economy_in_force</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</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">else</span> <span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</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-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-cm.html#SP1">&#167;1</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="3-cm.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_6" class="paragraph-anchor"></a><b>&#167;1.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Frame size</span><span class="named-paragraph-number">1.6</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP1_6" class="paragraph-anchor"></a><b>&#167;1.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Frame size</span><span class="named-paragraph-number">1.6</span></span><span class="comment-syntax"> =</span>
@ -170,7 +170,7 @@ function togglePopup(material_id) {
<pre class="displayed-code all-displayed-code code-font"> <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><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">MAX_FRAME_SIZE_NEEDED_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">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">MAX_FRAME_SIZE_NEEDED_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">SharedVariables::size_of_largest_set</span><span class="plain-syntax">());</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">SharedVariables::size_of_largest_set</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">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">iname</span><span class="plain-syntax">);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-cm.html#SP1">&#167;1</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="3-cm.html#SP1">&#167;1</a>.</li></ul>
@ -179,7 +179,7 @@ function togglePopup(material_id) {
<pre class="displayed-code all-displayed-code code-font"> <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><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">RNG_SEED_AT_START_OF_PLAY_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">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">RNG_SEED_AT_START_OF_PLAY_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Task::rng_seed</span><span class="plain-syntax">());</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Task::rng_seed</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">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">iname</span><span class="plain-syntax">);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-cm.html#SP1">&#167;1</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="3-cm.html#SP1">&#167;1</a>.</li></ul>
@ -188,7 +188,7 @@ function togglePopup(material_id) {
<pre class="displayed-code all-displayed-code code-font"> <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><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">MAX_INDEXED_FIGURES_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">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">MAX_INDEXED_FIGURES_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><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">global_compilation_settings</span><span class="plain-syntax">.</span><span class="identifier-syntax">index_figure_thumbnails</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">global_compilation_settings</span><span class="plain-syntax">.</span><span class="identifier-syntax">index_figure_thumbnails</span><span class="plain-syntax">);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-cm.html#SP1">&#167;1</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="3-cm.html#SP1">&#167;1</a>.</li></ul>
@ -295,7 +295,7 @@ function togglePopup(material_id) {
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">h</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">heading_package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pack</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">h</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">heading_package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pack</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">h</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">heading_ID</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">HEADING_ID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">h</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">heading_ID</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">HEADING_ID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">h</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">heading_ID</span><span class="plain-syntax">, </span><span class="constant-syntax">561</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">h</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">heading_ID</span><span class="plain-syntax">, </span><span class="constant-syntax">561</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">h</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">level</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">h</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">level</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">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="reserved-syntax">contents_entry</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">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="reserved-syntax">contents_entry</span><span class="plain-syntax">) == </span><span class="constant-syntax">1</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">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">HEADING_TEXT_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Source text"</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">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">HEADING_TEXT_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Source text"</span><span class="plain-syntax">);</span>

View file

@ -93,8 +93,8 @@ work at runtime:
<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="constant-syntax">0</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="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">uo</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">option_used</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">minimum_setting_value</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">)) </span><span class="identifier-syntax">set</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">uo</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">option_used</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">minimum_setting_value</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">)) </span><span class="identifier-syntax">set</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">set_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">USE_OPTION_ON_MD_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="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">set_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">USE_OPTION_ON_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">set_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">set</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">set_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">set</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">uo_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</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-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">uo_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</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-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_raw_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="constant-syntax">USE_OPTION_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</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_from_raw_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="constant-syntax">USE_OPTION_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</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">N</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">N</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">N</span><span class="plain-syntax">, </span><span class="string-syntax">"%W option"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</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">N</span><span class="plain-syntax">, </span><span class="string-syntax">"%W option"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
@ -142,7 +142,7 @@ one doesn't, that's not an error; it's just a pragma we suppress.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::pragma</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"-s"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP6" class="function-link"><span class="function-syntax">Emit::pragma</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"-s"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">i6_memory_setting</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ms</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">i6_memory_setting</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ms</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">ms</span><span class="plain-syntax">, </span><span class="identifier-syntax">i6_memory_setting</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">ms</span><span class="plain-syntax">, </span><span class="identifier-syntax">i6_memory_setting</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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">ms</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">ICL_identifier</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"MAX_LOCAL_VARIABLES"</span><span class="plain-syntax">)) &amp;&amp;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">ms</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">ICL_identifier</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"MAX_LOCAL_VARIABLES"</span><span class="plain-syntax">)) &amp;&amp;</span>
@ -150,7 +150,7 @@ one doesn't, that's not an error; it's just a pragma we suppress.
<span class="plain-syntax"> </span><span class="reserved-syntax">continue</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><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">prag</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">prag</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">prag</span><span class="plain-syntax">, </span><span class="string-syntax">"$%S=%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ms</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">ICL_identifier</span><span class="plain-syntax">, </span><span class="identifier-syntax">ms</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">number</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">prag</span><span class="plain-syntax">, </span><span class="string-syntax">"$%S=%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ms</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">ICL_identifier</span><span class="plain-syntax">, </span><span class="identifier-syntax">ms</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">number</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::pragma</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prag</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP6" class="function-link"><span class="function-syntax">Emit::pragma</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prag</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">prag</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">prag</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
</pre> </pre>
@ -185,11 +185,11 @@ kits.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">global_compilation_settings</span><span class="plain-syntax">.</span><span class="identifier-syntax">ranking_table_given</span><span class="plain-syntax">) </span><span class="identifier-syntax">bitmap</span><span class="plain-syntax"> += </span><span class="constant-syntax">512</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">global_compilation_settings</span><span class="plain-syntax">.</span><span class="identifier-syntax">ranking_table_given</span><span class="plain-syntax">) </span><span class="identifier-syntax">bitmap</span><span class="plain-syntax"> += </span><span class="constant-syntax">512</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">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">KIT_CONFIGURATION_BITMAP_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">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">KIT_CONFIGURATION_BITMAP_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">bitmap</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">bitmap</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">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">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">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">KIT_CONFIGURATION_LOOKMODE_HL</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">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">KIT_CONFIGURATION_LOOKMODE_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><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">global_compilation_settings</span><span class="plain-syntax">.</span><span class="identifier-syntax">room_description_level</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">global_compilation_settings</span><span class="plain-syntax">.</span><span class="identifier-syntax">room_description_level</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">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">iname</span><span class="plain-syntax">);</span>
</pre> </pre>

View file

@ -271,14 +271,14 @@ a function defined in <a href="../BasicInformKit/index.html" class="internal">Ba
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ts_value_iname</span><span class="plain-syntax"> = </span><a href="4-ts.html#SP4" class="function-link"><span class="function-syntax">TextSubstitutions::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ts</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">ts_value_iname</span><span class="plain-syntax"> = </span><a href="4-ts.html#SP4" class="function-link"><span class="function-syntax">TextSubstitutions::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ts</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">rc_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">rc_iname</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="4-rsp.html#SP3" class="function-link"><span class="function-syntax">Responses::response_constant_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">the_rule</span><span class="plain-syntax">, </span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">the_marker</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="4-rsp.html#SP3" class="function-link"><span class="function-syntax">Responses::response_constant_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">the_rule</span><span class="plain-syntax">, </span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">the_marker</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rc_iname</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-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rc_iname</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-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">value_md_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">ts_value_iname</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::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">value_md_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">ts_value_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rule_md_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-rls.html#SP9" class="function-link"><span class="function-syntax">RTRules::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">the_rule</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::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rule_md_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-rls.html#SP9" class="function-link"><span class="function-syntax">RTRules::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">the_rule</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">marker_md_iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">the_marker</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">marker_md_iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">the_marker</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><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><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">the_ts</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">unsubstituted_text</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">T</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">the_ts</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">unsubstituted_text</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::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">index_text_md_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">index_text_md_iname</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="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="identifier-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Extensions::corresponding_to</span><span class="plain-syntax">(</span> <span class="plain-syntax"> </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Extensions::corresponding_to</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Lexer::file_of_origin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">the_rule</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">)));</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Lexer::file_of_origin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">the_rule</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">)));</span>
@ -286,7 +286,7 @@ a function defined in <a href="../BasicInformKit/index.html" class="internal">Ba
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">QT</span><span class="plain-syntax">, </span><span class="string-syntax">"%&lt;X"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">work</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">E</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">QT</span><span class="plain-syntax">, </span><span class="string-syntax">"%&lt;X"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">work</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">QT</span><span class="plain-syntax">, </span><span class="string-syntax">"source text"</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">QT</span><span class="plain-syntax">, </span><span class="string-syntax">"source text"</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">QT</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">QT</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::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">group_md_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">QT</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">group_md_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">QT</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">QT</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">QT</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="4-tl.html#SP1" class="function-link"><span class="function-syntax">TextLiterals::compile_value_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">value_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">launcher_iname</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="4-tl.html#SP1" class="function-link"><span class="function-syntax">TextLiterals::compile_value_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">value_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">launcher_iname</span><span class="plain-syntax">);</span>

View file

@ -157,7 +157,7 @@ much later in the process. See <a href="../pipeline-module/5-lt.html" class="int
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <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">TextLiterals::to_value</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">TextLiterals::to_value</span></span>:<br/>Emit - <a href="2-emt.html#SP11">&#167;11</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">&#167;1</a></span></button><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">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">TextLiterals::to_value</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">TextLiterals::to_value</span></span>:<br/>Emit - <a href="2-emt.html#SP10">&#167;10</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">&#167;1</a></span></button><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">return</span><span class="plain-syntax"> </span><a href="4-tl.html#SP4" class="function-link"><span class="function-syntax">TextLiterals::to_value_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</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><a href="4-tl.html#SP4" class="function-link"><span class="function-syntax">TextLiterals::to_value_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</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>
@ -173,7 +173,7 @@ much later in the process. See <a href="../pipeline-module/5-lt.html" class="int
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">content_iname</span><span class="plain-syntax"> = </span><a href="4-enc.html#SP1" class="function-link"><span class="function-syntax">Enclosures::new_iname</span></a><span class="plain-syntax">(</span><span class="constant-syntax">LITERALS_HAP</span><span class="plain-syntax">, </span><span class="constant-syntax">TEXT_LITERAL_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">content_iname</span><span class="plain-syntax"> = </span><a href="4-enc.html#SP1" class="function-link"><span class="function-syntax">Enclosures::new_iname</span></a><span class="plain-syntax">(</span><span class="constant-syntax">LITERALS_HAP</span><span class="plain-syntax">, </span><span class="constant-syntax">TEXT_LITERAL_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterNames::annotate_b</span><span class="plain-syntax">(</span><span class="identifier-syntax">content_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">TEXT_LITERAL_IANN</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">InterNames::annotate_b</span><span class="plain-syntax">(</span><span class="identifier-syntax">content_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">TEXT_LITERAL_IANN</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">Task::wraps_existing_storyfile</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">Task::wraps_existing_storyfile</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::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">content_iname</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><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">content_iname</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="reserved-syntax">else</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">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">TLT</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">TLT</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">options</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CT_DEQUOTE</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">options</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CT_DEQUOTE</span><span class="plain-syntax">;</span>
@ -185,7 +185,7 @@ much later in the process. See <a href="../pipeline-module/5-lt.html" class="int
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TranscodeText::from_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">TLT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Lexer::word_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">w1</span><span class="plain-syntax">), </span><span class="identifier-syntax">options</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">TranscodeText::from_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">TLT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Lexer::word_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">w1</span><span class="plain-syntax">), </span><span class="identifier-syntax">options</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::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">content_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">TLT</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">content_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">TLT</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">TLT</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">TLT</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>

View file

@ -169,9 +169,9 @@ write 0.
<span class="plain-syntax"> </span><span class="identifier-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">av</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_activity</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">data</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">av</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_activity</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</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">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">av</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">av_package</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">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">av</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">av_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="identifier-syntax">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">ACTIVITY_ID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</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">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">ACTIVITY_ID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">); </span><span class="comment-syntax"> a placeholder: see above</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">); </span><span class="comment-syntax"> a placeholder: see above</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">av</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">value_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</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::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">av</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">value_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</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_from_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">av</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</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_from_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">av</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</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_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_AT_MD_HL</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_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_AT_MD_HL</span><span class="plain-syntax">,</span>
@ -201,7 +201,7 @@ write 0.
<span class="plain-syntax"> </span><a href="2-sv.html#SP1" class="function-link"><span class="function-syntax">RTSharedVariables::compile_creator_fn</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">av</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">activity_variables</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-sv.html#SP1" class="function-link"><span class="function-syntax">RTSharedVariables::compile_creator_fn</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">av</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">activity_variables</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</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_from_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_VAR_CREATOR_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</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_from_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_VAR_CREATOR_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">av</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">variables_id</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-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">av</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">variables_id</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">activity_crossref</span><span class="plain-syntax"> *</span><span class="identifier-syntax">acr</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="reserved-syntax">activity_crossref</span><span class="plain-syntax"> *</span><span class="identifier-syntax">acr</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">acr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">av</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">cross_references</span><span class="plain-syntax">; </span><span class="identifier-syntax">acr</span><span class="plain-syntax">; </span><span class="identifier-syntax">acr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">acr</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</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">acr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">av</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">cross_references</span><span class="plain-syntax">; </span><span class="identifier-syntax">acr</span><span class="plain-syntax">; </span><span class="identifier-syntax">acr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">acr</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">) {</span>

View file

@ -244,7 +244,7 @@ to anyone reading the Inform 6 code we generate.
<pre class="displayed-code all-displayed-code code-font"> <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><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">ACTION_ID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</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">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">ACTION_ID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">); </span><span class="comment-syntax"> placeholder, corrected in linking</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">); </span><span class="comment-syntax"> placeholder, corrected in linking</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-act2.html#SP8">&#167;8</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-act2.html#SP8">&#167;8</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_2" class="paragraph-anchor"></a><b>&#167;8.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile double-sharp constant</span><span class="named-paragraph-number">8.2</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP8_2" class="paragraph-anchor"></a><b>&#167;8.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile double-sharp constant</span><span class="named-paragraph-number">8.2</span></span><span class="comment-syntax"> =</span>
@ -252,7 +252,7 @@ to anyone reading the Inform 6 code we generate.
<pre class="displayed-code all-displayed-code code-font"> <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">ds_iname</span><span class="plain-syntax"> = </span><a href="5-act2.html#SP6" class="function-link"><span class="function-syntax">RTActions::double_sharp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">an</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">ds_iname</span><span class="plain-syntax"> = </span><a href="5-act2.html#SP6" class="function-link"><span class="function-syntax">RTActions::double_sharp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">an</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::unchecked_numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ds_iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">an</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::unchecked_numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ds_iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">an</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</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">ds_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">ds_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterNames::annotate_b</span><span class="plain-syntax">(</span><span class="identifier-syntax">ds_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">ACTION_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">InterNames::annotate_b</span><span class="plain-syntax">(</span><span class="identifier-syntax">ds_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">ACTION_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
</pre> </pre>
@ -267,11 +267,11 @@ to anyone reading the Inform 6 code we generate.
<span class="plain-syntax"> </span><span class="identifier-syntax">an</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">naming_data</span><span class="plain-syntax">.</span><span class="identifier-syntax">past_name</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">an</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">naming_data</span><span class="plain-syntax">.</span><span class="identifier-syntax">past_name</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_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTION_AT_MD_HL</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_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTION_AT_MD_HL</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">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">an</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">metadata_name</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">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">an</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">metadata_name</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><a href="5-act2.html#SP3" class="function-link"><span class="function-syntax">RTActions::variables_id</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">an</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-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><a href="5-act2.html#SP3" class="function-link"><span class="function-syntax">RTActions::variables_id</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">an</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">Str::get_first_char</span><span class="plain-syntax">(</span><a href="5-act2.html#SP5" class="function-link"><span class="function-syntax">RTActions::identifier</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">an</span><span class="plain-syntax">)) == </span><span class="character-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">Str::get_first_char</span><span class="plain-syntax">(</span><a href="5-act2.html#SP5" class="function-link"><span class="function-syntax">RTActions::identifier</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">an</span><span class="plain-syntax">)) == </span><span class="character-syntax">'_'</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_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">NO_CODING_MD_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</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_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">NO_CODING_MD_HL</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dsc</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">ACTION_DSHARP_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</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">dsc</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">ACTION_DSHARP_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dsc</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-act2.html#SP6" class="function-link"><span class="function-syntax">RTActions::double_sharp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">an</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::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dsc</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-act2.html#SP6" class="function-link"><span class="function-syntax">RTActions::double_sharp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">an</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_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</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_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="constant-syntax">OUT_OF_WORLD_MD_HL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">ActionSemantics::is_out_of_world</span><span class="plain-syntax">(</span><span class="identifier-syntax">an</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><span class="constant-syntax">OUT_OF_WORLD_MD_HL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">ActionSemantics::is_out_of_world</span><span class="plain-syntax">(</span><span class="identifier-syntax">an</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_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</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_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">,</span>
@ -360,7 +360,7 @@ to anyone reading the Inform 6 code we generate.
<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><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">ACTION_STV_CREATOR_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</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">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">ACTION_STV_CREATOR_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-sv.html#SP1" class="function-link"><span class="function-syntax">RTSharedVariables::compile_creator_fn</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">an</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">action_variables</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-sv.html#SP1" class="function-link"><span class="function-syntax">RTSharedVariables::compile_creator_fn</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">an</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">action_variables</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_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</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">ACTION_VARC_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</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">vc</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">ACTION_VARC_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</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::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-act2.html#SP8">&#167;8</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-act2.html#SP8">&#167;8</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_5" class="paragraph-anchor"></a><b>&#167;8.5. </b>The "perform" function for an action, typically called something like <span class="extract"><span class="extract-syntax">TakeSub</span></span>, <p class="commentary firstcommentary"><a id="SP8_5" class="paragraph-anchor"></a><b>&#167;8.5. </b>The "perform" function for an action, typically called something like <span class="extract"><span class="extract-syntax">TakeSub</span></span>,

View file

@ -198,7 +198,7 @@ past state to be maintained.
<span class="plain-syntax"> </span><span class="identifier-syntax">ptc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ptc_package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PR</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">ptc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ptc_package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PR</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ptc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ptc_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">ptc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ptc_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">id_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">PTC_ID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ptc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ptc_package</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">id_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">PTC_ID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ptc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ptc_package</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id_iname</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">); </span><span class="comment-syntax"> a placeholder: made unique in linking</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id_iname</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">); </span><span class="comment-syntax"> a placeholder: made unique in linking</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">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">"past tense condition %d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ptc</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</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">"past tense condition %d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ptc</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Sequence::queue</span><span class="plain-syntax">(&amp;</span><a href="5-chr.html#SP4" class="function-link"><span class="function-syntax">Chronology::ptc_agent</span></a><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Sequence::queue</span><span class="plain-syntax">(&amp;</span><a href="5-chr.html#SP4" class="function-link"><span class="function-syntax">Chronology::ptc_agent</span></a><span class="plain-syntax">,</span>
@ -254,7 +254,7 @@ then, that past state is available, and can be accessed with a simple function c
<span class="plain-syntax"> }</span> <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="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="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">PTC_VALUE_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ptc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ptc_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="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">PTC_VALUE_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ptc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ptc_package</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" 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">ptc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ptc_iname</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::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">ptc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ptc_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP4_1" class="paragraph-anchor"></a><b>&#167;4.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile code to set the new state of the condition, as measured in the present</span><span class="named-paragraph-number">4.1</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP4_1" class="paragraph-anchor"></a><b>&#167;4.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile code to set the new state of the condition, as measured in the present</span><span class="named-paragraph-number">4.1</span></span><span class="comment-syntax"> =</span>
@ -379,7 +379,7 @@ taken something" would be a past tense condition: see above.)
<span class="plain-syntax"> </span><span class="identifier-syntax">Sequence::queue</span><span class="plain-syntax">(&amp;</span><a href="5-chr.html#SP8" class="function-link"><span class="function-syntax">Chronology::ahcr_agent</span></a><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Sequence::queue</span><span class="plain-syntax">(&amp;</span><a href="5-chr.html#SP8" class="function-link"><span class="function-syntax">Chronology::ahcr_agent</span></a><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">STORE_POINTER_action_history_condition_record</span><span class="plain-syntax">(</span><span class="identifier-syntax">ahcr</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">STORE_POINTER_action_history_condition_record</span><span class="plain-syntax">(</span><span class="identifier-syntax">ahcr</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">id_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">AHC_ID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ahcr</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ahcr_package</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">id_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">AHC_ID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ahcr</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ahcr_package</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id_iname</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">); </span><span class="comment-syntax"> a placeholder: made unique in linking</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id_iname</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">); </span><span class="comment-syntax"> a placeholder: made unique in linking</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-chr.html#SP7">&#167;7</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-chr.html#SP7">&#167;7</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP7_2" class="paragraph-anchor"></a><b>&#167;7.2. </b>The test compiled here relies entirely on a slew of arrays being correctly <p class="commentary firstcommentary"><a id="SP7_2" class="paragraph-anchor"></a><b>&#167;7.2. </b>The test compiled here relies entirely on a slew of arrays being correctly
@ -533,7 +533,7 @@ the pattern, and otherwise false.
<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="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="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">AHC_VALUE_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ahcr</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ahcr_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="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">AHC_VALUE_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ahcr</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ahcr_package</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" 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">ahcr</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ahcr_iname</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::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">ahcr</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ahcr_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. Utility. </b>Last and very much least: <p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. Utility. </b>Last and very much least:

View file

@ -85,10 +85,10 @@ function togglePopup(material_id) {
<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> <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>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CV_MEANING_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_MEANING_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_MEANING_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_MEANING_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::named_numeric_constant_signed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CV_POS_iname</span><span class="plain-syntax">, -1);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::named_numeric_constant_signed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CV_POS_iname</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::named_numeric_constant_signed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CV_NEG_iname</span><span class="plain-syntax">, -2);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::named_numeric_constant_signed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CV_NEG_iname</span><span class="plain-syntax">, -2);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::named_numeric_constant_signed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CV_MODAL_INAME_iname</span><span class="plain-syntax">, -3);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::named_numeric_constant_signed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CV_MODAL_INAME_iname</span><span class="plain-syntax">, -3);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::named_numeric_constant_signed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CV_MEANING_iname</span><span class="plain-syntax">, -4);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::named_numeric_constant_signed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CV_MEANING_iname</span><span class="plain-syntax">, -4);</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_POS_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_POS_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_NEG_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_NEG_iname</span><span class="plain-syntax">);</span>
@ -508,9 +508,9 @@ packages occur as sub-packages of the relevant <span class="extract"><span class
<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">-&gt;</span><span class="identifier-syntax">data</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">-&gt;</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><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#SP10" 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="2-emt.html#SP9" 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="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#SP8" 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><a href="2-emt.html#SP7" 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">-&gt;</span><span class="identifier-syntax">allocation_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">vf</span><span class="plain-syntax">-&gt;</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><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>

View file

@ -352,7 +352,7 @@ using Inter's <span class="extract"><span class="extract-syntax">INSTANCE_IST</s
<span class="plain-syntax"> </span><span class="constant-syntax">INST_SHOWME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="constant-syntax">INST_SHOWME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP14" class="function-link"><span class="function-syntax">Emit::instance</span></a><span class="plain-syntax">(</span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">Instances::to_kind</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="plain-syntax">-&gt;</span><span class="identifier-syntax">enumeration_index</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP13" class="function-link"><span class="function-syntax">Emit::instance</span></a><span class="plain-syntax">(</span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">Instances::to_kind</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="plain-syntax">-&gt;</span><span class="identifier-syntax">enumeration_index</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">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">declaration_sequence_number</span><span class="plain-syntax"> &gt;= </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">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">declaration_sequence_number</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterNames::annotate_i</span><span class="plain-syntax">(</span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">DECLARATION_ORDER_IANN</span><span class="plain-syntax">,</span> <span class="plain-syntax"> </span><span class="identifier-syntax">InterNames::annotate_i</span><span class="plain-syntax">(</span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">DECLARATION_ORDER_IANN</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">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">declaration_sequence_number</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">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">declaration_sequence_number</span><span class="plain-syntax">);</span>

View file

@ -351,7 +351,7 @@ of the kind which the constructor makes:
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">external</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">external</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">pr_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">PRINT_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="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">pr_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">PRINT_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="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">actual_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find_by_name</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">X</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">actual_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find_by_name</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">X</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">pr_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">actual_iname</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::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">pr_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">actual_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="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"internal but unknown kind printing routine"</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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"internal but unknown kind printing routine"</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">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">external</span><span class="plain-syntax">) </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">pr_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find_by_name</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">X</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">external</span><span class="plain-syntax">) </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">pr_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find_by_name</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">X</span><span class="plain-syntax">);</span>
@ -359,7 +359,7 @@ of the kind which the constructor makes:
<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">K</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">pr_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">K</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">pr_iname</span><span class="plain-syntax">;</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">RTKindConstructors::kind_package</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">RTKindConstructors::kind_package</span></span>:<br/><a href="5-kc.html#SP2">&#167;2</a>, <a href="5-kc.html#SP3">&#167;3</a>, <a href="5-kc.html#SP10">&#167;10</a><br/>Hierarchy - <a href="2-hrr.html#SP10">&#167;10</a><br/>Emit - <a href="2-emt.html#SP6">&#167;6</a><br/>Instance Counting - <a href="2-ic.html#SP10_2">&#167;10.2</a><br/>Short Names - <a href="2-sn.html#SP1">&#167;1</a><br/>List Literals - <a href="4-ll.html#SP7">&#167;7</a><br/>Property Permissions - <a href="6-pp.html#SP1">&#167;1</a></span></button><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">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">RTKindConstructors::kind_package</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">RTKindConstructors::kind_package</span></span>:<br/><a href="5-kc.html#SP2">&#167;2</a>, <a href="5-kc.html#SP3">&#167;3</a>, <a href="5-kc.html#SP10">&#167;10</a><br/>Hierarchy - <a href="2-hrr.html#SP10">&#167;10</a><br/>Emit - <a href="2-emt.html#SP5">&#167;5</a><br/>Instance Counting - <a href="2-ic.html#SP10_2">&#167;10.2</a><br/>Short Names - <a href="2-sn.html#SP1">&#167;1</a><br/>List Literals - <a href="4-ll.html#SP7">&#167;7</a><br/>Property Permissions - <a href="6-pp.html#SP1">&#167;1</a></span></button><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="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP1" class="function-link"><span class="function-syntax">RTKindConstructors::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP1" class="function-link"><span class="function-syntax">RTKindConstructors::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax">);</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">RTKindConstructors::get_inc_iname</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">RTKindConstructors::get_inc_iname</span></span>:<br/><a href="5-kc.html#SP10_8_4">&#167;10.8.4</a></span></button><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="function-syntax">RTKindConstructors::get_inc_iname</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">RTKindConstructors::get_inc_iname</span></span>:<br/><a href="5-kc.html#SP10_8_4">&#167;10.8.4</a></span></button><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>
@ -539,9 +539,9 @@ parsing names of objects, but not as a grammar token in its own right.
<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">Kinds::base_construction</span><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">);</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">Kinds::base_construction</span><span class="plain-syntax">(</span><span class="identifier-syntax">kc</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">pack</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP1" class="function-link"><span class="function-syntax">RTKindConstructors::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kc</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">pack</span><span class="plain-syntax"> = </span><a href="5-kc.html#SP1" class="function-link"><span class="function-syntax">RTKindConstructors::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP1" class="function-link"><span class="function-syntax">RTKindConstructors::xref_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">), </span><span class="constant-syntax">561</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP1" class="function-link"><span class="function-syntax">RTKindConstructors::xref_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">), </span><span class="constant-syntax">561</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::weak_ID_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kc</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-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::weak_ID_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kc</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-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::weak_ID_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kc</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><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::weak_ID_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kc</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">S</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">S</span><span class="plain-syntax">)</span>
@ -717,7 +717,7 @@ parsing names of objects, but not as a grammar token in its own right.
<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><a href="2-hrr.html#SP16" class="function-link"><span class="function-syntax">Hierarchy::make_iname_with_specific_translation</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ICOUNT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterSymbolsTable::render_identifier_unique</span><span class="plain-syntax">(</span><span class="identifier-syntax">LargeScale::main_scope</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">ICN</span><span class="plain-syntax">), </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP16" class="function-link"><span class="function-syntax">Hierarchy::make_iname_with_specific_translation</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ICOUNT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterSymbolsTable::render_identifier_unique</span><span class="plain-syntax">(</span><span class="identifier-syntax">LargeScale::main_scope</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">ICN</span><span class="plain-syntax">), </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</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">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">iname</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">ICN</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">ICN</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Instances::count</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Instances::count</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</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">Kinds::Behaviour::is_object</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">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</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_from_number</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</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_from_number</span></a><span class="plain-syntax">(</span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">),</span>

View file

@ -252,10 +252,10 @@ turns up. This means remembering everything we've seen, using a new structure:
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTKindIDs::define_constant_as_strong_id</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">RTKindIDs::define_constant_as_strong_id</span></span>:<br/>Instances - <a href="5-ins.html#SP4">&#167;4</a><br/>Table Columns - <a href="5-tc.html#SP2">&#167;2</a><br/>Actions - <a href="5-act2.html#SP8_3">&#167;8.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="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTKindIDs::define_constant_as_strong_id</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">RTKindIDs::define_constant_as_strong_id</span></span>:<br/>Instances - <a href="5-ins.html#SP4">&#167;4</a><br/>Table Columns - <a href="5-tc.html#SP2">&#167;2</a><br/>Actions - <a href="5-act2.html#SP8_3">&#167;8.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="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="reserved-syntax">runtime_kind_structure</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rks</span><span class="plain-syntax"> = </span><a href="5-ki.html#SP7" class="function-link"><span class="function-syntax">RTKindIDs::get_rks</span></a><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">runtime_kind_structure</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rks</span><span class="plain-syntax"> = </span><a href="5-ki.html#SP7" class="function-link"><span class="function-syntax">RTKindIDs::get_rks</span></a><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">rks</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">rks</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><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">rks</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rks_iname</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::iname_constant</span></a><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">rks</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rks_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="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="plain-syntax"> </span><a href="2-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><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><a href="5-ki.html#SP1" class="function-link"><span class="function-syntax">RTKindIDs::weak_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</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::iname_constant</span></a><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><a href="5-ki.html#SP1" class="function-link"><span class="function-syntax">RTKindIDs::weak_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. </b>Thus the following routine must return <span class="extract"><span class="extract-syntax">NULL</span></span> if \(K\) is a kind whose weak <p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. </b>Thus the following routine must return <span class="extract"><span class="extract-syntax">NULL</span></span> if \(K\) is a kind whose weak
@ -457,11 +457,11 @@ recursively scanned through for us, so that if we have seen a construction
<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">DK_NEEDED_MD_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">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">DK_NEEDED_MD_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">rks</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rks_package</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">rks</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rks_package</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">rks</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">make_default</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">rks</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">make_default</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" 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="constant-syntax">1</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" 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="constant-syntax">1</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">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" 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="constant-syntax">0</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" 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="constant-syntax">0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" 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">DK_STRONG_ID_HL</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::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">DK_STRONG_ID_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">rks</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rks_package</span><span class="plain-syntax">), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">rks</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rks_iname</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">rks</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rks_package</span><span class="plain-syntax">), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">rks</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">rks_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
</pre> </pre>

View file

@ -126,7 +126,7 @@ package already supplied:
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="identifier-syntax">prop_package</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">prn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="identifier-syntax">prop_package</span><span class="plain-syntax">;</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">RTProperties::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">RTProperties::iname</span></span>:<br/><a href="5-prp.html#SP5">&#167;5</a>, <a href="5-prp.html#SP7">&#167;7</a>, <a href="5-prp.html#SP7_4">&#167;7.4</a>, <a href="5-prp.html#SP9">&#167;9</a>, <a href="5-prp.html#SP10">&#167;10</a><br/>Emit - <a href="2-emt.html#SP16">&#167;16</a>, <a href="2-emt.html#SP17">&#167;17</a><br/>Emit Code - <a href="2-ec.html#SP8">&#167;8</a><br/>Instance Counting - <a href="2-ic.html#SP4">&#167;4</a><br/>Showme Command - <a href="2-sc.html#SP6_1">&#167;6.1</a>, <a href="2-sc.html#SP6_1_1">&#167;6.1.1</a>, <a href="2-sc.html#SP6_1_1_1">&#167;6.1.1.1</a>, <a href="2-sc.html#SP6_2">&#167;6.2</a><br/>Scene Instances - <a href="5-si.html#SP6_1">&#167;6.1</a><br/>Relations - <a href="5-rlt.html#SP7_3_3">&#167;7.3.3</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_6">&#167;1.2.6</a>, <a href="7-cgt.html#SP1_2_7">&#167;1.2.7</a>, <a href="7-cgt.html#SP1_2_10_2_1">&#167;1.2.10.2.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">&#167;1.2.10.2.2</a><br/>Parse Name Properties - <a href="7-pnp.html#SP4_3_1">&#167;4.3.1</a>, <a href="7-pnp.html#SP6_2">&#167;6.2</a>, <a href="7-pnp.html#SP8">&#167;8</a>, <a href="7-pnp.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTProperties::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">RTProperties::iname</span></span>:<br/><a href="5-prp.html#SP5">&#167;5</a>, <a href="5-prp.html#SP7">&#167;7</a>, <a href="5-prp.html#SP7_4">&#167;7.4</a>, <a href="5-prp.html#SP9">&#167;9</a>, <a href="5-prp.html#SP10">&#167;10</a><br/>Emit - <a href="2-emt.html#SP15">&#167;15</a>, <a href="2-emt.html#SP16">&#167;16</a><br/>Emit Code - <a href="2-ec.html#SP8">&#167;8</a><br/>Instance Counting - <a href="2-ic.html#SP4">&#167;4</a><br/>Showme Command - <a href="2-sc.html#SP6_1">&#167;6.1</a>, <a href="2-sc.html#SP6_1_1">&#167;6.1.1</a>, <a href="2-sc.html#SP6_1_1_1">&#167;6.1.1.1</a>, <a href="2-sc.html#SP6_2">&#167;6.2</a><br/>Scene Instances - <a href="5-si.html#SP6_1">&#167;6.1</a><br/>Relations - <a href="5-rlt.html#SP7_3_3">&#167;7.3.3</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_6">&#167;1.2.6</a>, <a href="7-cgt.html#SP1_2_7">&#167;1.2.7</a>, <a href="7-cgt.html#SP1_2_10_2_1">&#167;1.2.10.2.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">&#167;1.2.10.2.2</a><br/>Parse Name Properties - <a href="7-pnp.html#SP4_3_1">&#167;4.3.1</a>, <a href="7-pnp.html#SP6_2">&#167;6.2</a>, <a href="7-pnp.html#SP8">&#167;8</a>, <a href="7-pnp.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</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">prn</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">"tried to find iname for null property"</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">prn</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">"tried to find iname for null property"</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">Properties::is_either_or</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">store_in_negation</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">Properties::is_either_or</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">store_in_negation</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EitherOrProperties::get_negation</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EitherOrProperties::get_negation</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">));</span>
@ -259,7 +259,7 @@ kit, we'll have to use that one.
<span class="plain-syntax"> (</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">store_in_negation</span><span class="plain-syntax">)) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span> <span class="plain-syntax"> (</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">store_in_negation</span><span class="plain-syntax">)) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</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">Properties::kind_of_contents</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</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">Properties::kind_of_contents</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</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">K</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">"kindless property"</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">K</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">"kindless property"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP6" class="function-link"><span class="function-syntax">Emit::ensure_defaultvalue</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP5" class="function-link"><span class="function-syntax">Emit::ensure_defaultvalue</span></a><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">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</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">pack</span><span class="plain-syntax"> = </span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</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">iname</span><span class="plain-syntax"> = </span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</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">iname</span><span class="plain-syntax"> = </span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span>
@ -274,7 +274,7 @@ kit, we'll have to use that one.
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="2-emt.html#SP16" class="function-link"><span class="function-syntax">Emit::property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP15" class="function-link"><span class="function-syntax">Emit::property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-prp.html#SP7">&#167;7</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-prp.html#SP7">&#167;7</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP7_2" class="paragraph-anchor"></a><b>&#167;7.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the property name metadata</span><span class="named-paragraph-number">7.2</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP7_2" class="paragraph-anchor"></a><b>&#167;7.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the property name metadata</span><span class="named-paragraph-number">7.2</span></span><span class="comment-syntax"> =</span>
@ -295,7 +295,7 @@ kit, we'll have to use that one.
<pre class="displayed-code all-displayed-code code-font"> <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">id_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">PROPERTY_ID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</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">id_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">PROPERTY_ID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id_iname</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">); </span><span class="comment-syntax"> a placeholder</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id_iname</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">); </span><span class="comment-syntax"> a placeholder</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-prp.html#SP7">&#167;7</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-prp.html#SP7">&#167;7</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP7_4" class="paragraph-anchor"></a><b>&#167;7.4. </b>These provide hints to the code-generator, but should possibly be done as <p class="commentary firstcommentary"><a id="SP7_4" class="paragraph-anchor"></a><b>&#167;7.4. </b>These provide hints to the code-generator, but should possibly be done as

View file

@ -317,7 +317,7 @@ rulebook:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><a href="5-rlb.html#SP3" class="function-link"><span class="function-syntax">RTRulebooks::id_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">B</span><span class="plain-syntax">), </span><span class="constant-syntax">0</span><span class="plain-syntax">); </span><span class="comment-syntax"> placeholder</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><a href="5-rlb.html#SP3" class="function-link"><span class="function-syntax">RTRulebooks::id_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">B</span><span class="plain-syntax">), </span><span class="constant-syntax">0</span><span class="plain-syntax">); </span><span class="comment-syntax"> placeholder</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-rlb.html#SP7">&#167;7</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-rlb.html#SP7">&#167;7</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP7_3" class="paragraph-anchor"></a><b>&#167;7.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile shared variables creator function</span><span class="named-paragraph-number">7.3</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP7_3" class="paragraph-anchor"></a><b>&#167;7.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile shared variables creator function</span><span class="named-paragraph-number">7.3</span></span><span class="comment-syntax"> =</span>
@ -342,7 +342,7 @@ rulebook:
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">countup</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BookingLists::length</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</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">countup</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BookingLists::length</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</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">countup</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">countup</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-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">run_fn_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-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">run_fn_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-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EMPTY_RULEBOOK_INAME_HL</span><span class="plain-syntax">));</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">EMPTY_RULEBOOK_INAME_HL</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">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-rlb.html#SP7_4_1" class="named-paragraph-link"><span class="named-paragraph">Compile run function for a nonempty rulebook</span><span class="named-paragraph-number">7.4.1</span></a></span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-rlb.html#SP7_4_1" class="named-paragraph-link"><span class="named-paragraph">Compile run function for a nonempty rulebook</span><span class="named-paragraph-number">7.4.1</span></a></span><span class="plain-syntax">;</span>
@ -711,7 +711,7 @@ questionable arrangement, but there it is).
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">RV</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">RV</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">RV</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">nro</span><span class="plain-syntax">-&gt;</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">RV</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">nro</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</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::text_constant</span></a><span class="plain-syntax">(</span><a href="5-rlb.html#SP12" class="function-link"><span class="function-syntax">RTRulebooks::nro_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nro</span><span class="plain-syntax">), </span><span class="identifier-syntax">RV</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><a href="5-rlb.html#SP12" class="function-link"><span class="function-syntax">RTRulebooks::nro_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nro</span><span class="plain-syntax">), </span><span class="identifier-syntax">RV</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">RV</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">RV</span><span class="plain-syntax">)</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-rlb.html#SP14">&#167;14</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-rlb.html#SP14">&#167;14</a>.</li></ul>
@ -722,7 +722,7 @@ questionable arrangement, but there it is).
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">equated_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">equated_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="identifier-syntax">nro</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">equated_hl</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</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="identifier-syntax">nro</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">equated_hl</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</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">equated_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">equated_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">equated_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-rlb.html#SP12" class="function-link"><span class="function-syntax">RTRulebooks::nro_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nro</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::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">equated_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-rlb.html#SP12" class="function-link"><span class="function-syntax">RTRulebooks::nro_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nro</span><span class="plain-syntax">));</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-rlb.html#SP14">&#167;14</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-rlb.html#SP14">&#167;14</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. </b></p> <p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. </b></p>

View file

@ -336,7 +336,7 @@ response handlers for foreign rules &mdash; see <a href="4-rsp.html#SP7" class="
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><a href="5-rls.html#SP3" class="function-link"><span class="function-syntax">RTRules::anchor_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">), </span><span class="constant-syntax">1105</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><a href="5-rls.html#SP3" class="function-link"><span class="function-syntax">RTRules::anchor_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">), </span><span class="constant-syntax">1105</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_from_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">RULE_VALUE_MD_HL</span><span class="plain-syntax">, </span><a href="5-rls.html#SP9" class="function-link"><span class="function-syntax">RTRules::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</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_from_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">RULE_VALUE_MD_HL</span><span class="plain-syntax">, </span><a href="5-rls.html#SP9" class="function-link"><span class="function-syntax">RTRules::iname</span></a><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">applicability_constraint</span><span class="plain-syntax"> *</span><span class="identifier-syntax">acl</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">applicability_constraint</span><span class="plain-syntax"> *</span><span class="identifier-syntax">acl</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">acl</span><span class="plain-syntax">, </span><span class="identifier-syntax">applicability_constraint</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">applicability_constraints</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">acl</span><span class="plain-syntax">, </span><span class="identifier-syntax">applicability_constraint</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">applicability_constraints</span><span class="plain-syntax">) {</span>

View file

@ -97,7 +97,7 @@ form a bitmap in arbitrary combinations.
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTRelations::def_bit</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">RTRelations::def_bit</span></span>:<br/><a href="5-rlt.html#SP1_1">&#167;1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTRelations::def_bit</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">RTRelations::def_bit</span></span>:<br/><a href="5-rlt.html#SP1_1">&#167;1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</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="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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="identifier-syntax">id</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">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="identifier-syntax">id</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">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">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::named_numeric_constant_hex</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::named_numeric_constant_hex</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</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">RTRelations::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">RTRelations::compile_generic_constants</span></span>:<br/>Generic Module - <a href="3-gm.html#SP1">&#167;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">RTRelations::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">RTRelations::compile_generic_constants</span></span>:<br/>Generic Module - <a href="3-gm.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
@ -250,7 +250,7 @@ therefore be forced with:
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTRelations::compile</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">RTRelations::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="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-rlt.html#SP4" 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><a href="5-rlt.html#SP4" class="function-link"><span class="function-syntax">RTRelations::default_iname</span></a><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">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">MEANINGLESS_RR_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">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">MEANINGLESS_RR_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><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><a href="5-rlt.html#SP4" class="function-link"><span class="function-syntax">RTRelations::default_iname</span></a><span class="plain-syntax">());</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><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><a href="5-rlt.html#SP4" class="function-link"><span class="function-syntax">RTRelations::default_iname</span></a><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">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">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
@ -287,10 +287,10 @@ existence at runtime, for the sake of the index.
<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">RETRIEVE_POINTER_binary_predicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">data</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">RETRIEVE_POINTER_binary_predicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</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">pack</span><span class="plain-syntax"> = </span><a href="5-rlt.html#SP2" 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="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="5-rlt.html#SP2" 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="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">id_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_ID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</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">id_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_ID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id_iname</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-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id_iname</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">bp</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">record_needed</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">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">record_needed</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><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_VALUE_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</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><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_VALUE_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" 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-rlt.html#SP4" class="function-link"><span class="function-syntax">RTRelations::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bp</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::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-rlt.html#SP4" class="function-link"><span class="function-syntax">RTRelations::iname</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="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</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">desc</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BinaryPredicateFamilies::describe_for_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</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">BinaryPredicateFamilies::describe_for_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">bp</span><span class="plain-syntax">);</span>
@ -452,7 +452,7 @@ as their meanings. See the test case <span class="extract"><span class="extract-
<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="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="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="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">RELATION_CREATOR_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</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><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_CREATOR_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" 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">iname</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::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">iname</span><span class="plain-syntax">);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-rlt.html#SP7">&#167;7</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-rlt.html#SP7">&#167;7</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP7_3" class="paragraph-anchor"></a><b>&#167;7.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the metadata array</span><span class="named-paragraph-number">7.3</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP7_3" class="paragraph-anchor"></a><b>&#167;7.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the metadata array</span><span class="named-paragraph-number">7.3</span></span><span class="comment-syntax"> =</span>
@ -1472,7 +1472,7 @@ above: it forces the template layer to generate the cache when first used.
<span class="plain-syntax"> </span><span class="identifier-syntax">SymbolAnnotation::set_b</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><span class="identifier-syntax">EXTENT_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">SymbolAnnotation::set_b</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><span class="identifier-syntax">EXTENT_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="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">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">v2v_iname</span><span class="plain-syntax"> = </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</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">v2v_iname</span><span class="plain-syntax"> = </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-rlt.html#SP11">&#167;11</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="5-rlt.html#SP11">&#167;11</a>.</li></ul>

View file

@ -175,7 +175,7 @@ occurs, and (b) act upon it.
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::rfalse</span></a><span class="plain-syntax">();</span> <span class="plain-syntax"> </span><a href="2-ec.html#SP14" 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="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="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_SCF_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</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><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_SCF_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" 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">iname</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::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">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP3_1" class="paragraph-anchor"></a><b>&#167;3.1. </b>Recall that ends numbered 1, 2, 3, ... are all ways for the scene to end, <p class="commentary firstcommentary"><a id="SP3_1" class="paragraph-anchor"></a><b>&#167;3.1. </b>Recall that ends numbered 1, 2, 3, ... are all ways for the scene to end,
@ -630,7 +630,7 @@ what handles this for the scene in question.
<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="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="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_SSF_MD_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">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_SSF_MD_HL</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::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_instance</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::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" 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">iname</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::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">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP7_1" class="paragraph-anchor"></a><b>&#167;7.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Show status of this running scene</span><span class="named-paragraph-number">7.1</span></span><span class="comment-syntax"> =</span> <p class="commentary firstcommentary"><a id="SP7_1" class="paragraph-anchor"></a><b>&#167;7.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Show status of this running scene</span><span class="named-paragraph-number">7.1</span></span><span class="comment-syntax"> =</span>

View file

@ -279,17 +279,17 @@ the values given there.
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bits_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">COLUMN_BITS_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">bits_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">COLUMN_BITS_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="5-tbl.html#SP5" class="function-link"><span class="function-syntax">RTTables::tcu_package</span></a><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">columns</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">])));</span> <span class="plain-syntax"> </span><a href="5-tbl.html#SP5" class="function-link"><span class="function-syntax">RTTables::tcu_package</span></a><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">columns</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">])));</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bits_iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">bits</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bits_iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">bits</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><span class="identifier-syntax">bits_iname</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><span class="identifier-syntax">bits_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">identity_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">COLUMN_IDENTITY_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">identity_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">COLUMN_IDENTITY_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="5-tbl.html#SP5" class="function-link"><span class="function-syntax">RTTables::tcu_package</span></a><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">columns</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">])));</span> <span class="plain-syntax"> </span><a href="5-tbl.html#SP5" class="function-link"><span class="function-syntax">RTTables::tcu_package</span></a><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">columns</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">])));</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">identity_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-tc.html#SP1" class="function-link"><span class="function-syntax">RTTableColumns::id_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tc</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::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">identity_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-tc.html#SP1" class="function-link"><span class="function-syntax">RTTableColumns::id_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tc</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">bits</span><span class="plain-syntax"> &amp; </span><span class="constant-syntax">TB_COLUMN_NOBLANKBITS</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">bits</span><span class="plain-syntax"> &amp; </span><span class="constant-syntax">TB_COLUMN_NOBLANKBITS</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::null_entry</span></a><span class="plain-syntax">();</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="plain-syntax"> } </span><span class="reserved-syntax">else</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">blanks_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">COLUMN_BLANKS_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">blanks_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">COLUMN_BLANKS_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="5-tbl.html#SP5" class="function-link"><span class="function-syntax">RTTables::tcu_package</span></a><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">columns</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">])));</span> <span class="plain-syntax"> </span><a href="5-tbl.html#SP5" class="function-link"><span class="function-syntax">RTTables::tcu_package</span></a><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">columns</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">])));</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">blanks_iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">blanks_array_hwm</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">blanks_iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">blanks_array_hwm</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><span class="identifier-syntax">blanks_iname</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><span class="identifier-syntax">blanks_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">words_used</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">words_used</span><span class="plain-syntax"> += </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
@ -415,7 +415,7 @@ case.)
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_wording</span></a><span class="plain-syntax">(</span><a href="5-tbl.html#SP1" class="function-link"><span class="function-syntax">RTTables::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</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_from_wording</span></a><span class="plain-syntax">(</span><a href="5-tbl.html#SP1" class="function-link"><span class="function-syntax">RTTables::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="constant-syntax">TABLE_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">name_for_metadata</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="constant-syntax">TABLE_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">name_for_metadata</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">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">TABLE_ID_HL</span><span class="plain-syntax">, </span><a href="5-tbl.html#SP1" class="function-link"><span class="function-syntax">RTTables::package</span></a><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">TABLE_ID_HL</span><span class="plain-syntax">, </span><a href="5-tbl.html#SP1" class="function-link"><span class="function-syntax">RTTables::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</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-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</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">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</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">S</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">S</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">headline_fragment</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">S</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">headline_fragment</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><a href="5-tbl.html#SP1" class="function-link"><span class="function-syntax">RTTables::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">), </span><span class="constant-syntax">TABLE_PNAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</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><a href="5-tbl.html#SP1" class="function-link"><span class="function-syntax">RTTables::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">), </span><span class="constant-syntax">TABLE_PNAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>

View file

@ -118,7 +118,7 @@ to the column-ID constant, and let the linker choose a value for that.
<span class="plain-syntax"> </span><span class="identifier-syntax">table_column</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tc</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">table_column</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tc</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">tc</span><span class="plain-syntax">, </span><span class="identifier-syntax">table_column</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">tc</span><span class="plain-syntax">, </span><span class="identifier-syntax">table_column</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">pack</span><span class="plain-syntax"> = </span><a href="5-tc.html#SP1" class="function-link"><span class="function-syntax">RTTableColumns::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tc</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">pack</span><span class="plain-syntax"> = </span><a href="5-tc.html#SP1" class="function-link"><span class="function-syntax">RTTableColumns::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tc</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><a href="5-tc.html#SP1" class="function-link"><span class="function-syntax">RTTableColumns::id_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tc</span><span class="plain-syntax">), </span><span class="constant-syntax">0</span><span class="plain-syntax">); </span><span class="comment-syntax"> placeholder value</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><a href="5-tc.html#SP1" class="function-link"><span class="function-syntax">RTTableColumns::id_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tc</span><span class="plain-syntax">), </span><span class="constant-syntax">0</span><span class="plain-syntax">); </span><span class="comment-syntax"> placeholder value</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_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">TABLE_COLUMN_KIND_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</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">kind_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">TABLE_COLUMN_KIND_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-ki.html#SP6" class="function-link"><span class="function-syntax">RTKindIDs::define_constant_as_strong_id</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kind_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">Tables::Columns::get_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">tc</span><span class="plain-syntax">));</span> <span class="plain-syntax"> </span><a href="5-ki.html#SP6" class="function-link"><span class="function-syntax">RTKindIDs::define_constant_as_strong_id</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kind_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">Tables::Columns::get_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">tc</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_from_raw_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</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_from_raw_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">,</span>

View file

@ -424,7 +424,7 @@ compiled code, of course.
<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><a href="5-vrb.html#SP11" class="function-link"><span class="function-syntax">RTVariables::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</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">iname</span><span class="plain-syntax"> = </span><a href="5-vrb.html#SP11" class="function-link"><span class="function-syntax">RTVariables::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</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">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">nlv_name_translated</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">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">nlv_name_translated</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_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><a href="5-vrb.html#SP15" class="function-link"><span class="function-syntax">RTVariables::initial_value_as_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><a href="5-vrb.html#SP15" class="function-link"><span class="function-syntax">RTVariables::initial_value_as_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP15" class="function-link"><span class="function-syntax">Emit::variable</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">nlv_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP14" class="function-link"><span class="function-syntax">Emit::variable</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">nlv_kind</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">else</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">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">lvalue_nve</span><span class="plain-syntax">.</span><span class="element-syntax">iname_form</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">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">lvalue_nve</span><span class="plain-syntax">.</span><span class="element-syntax">iname_form</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">S</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> <span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</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>
@ -440,9 +440,9 @@ compiled code, of course.
<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><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">INITIAL_MAX_SCORE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</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">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">INITIAL_MAX_SCORE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</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">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">iname</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">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">max_score_VAR</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">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">max_score_VAR</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP12" class="function-link"><span class="function-syntax">Emit::initial_value_as_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">max_score_VAR</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::initial_value_as_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">max_score_VAR</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">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</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-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
@ -489,7 +489,7 @@ ways:
<span class="plain-syntax"> </span><span class="identifier-syntax">Holsters::unholster_to_code_val</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">(), &amp;</span><span class="identifier-syntax">VH</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Holsters::unholster_to_code_val</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">(), &amp;</span><span class="identifier-syntax">VH</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
<span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="function-syntax">RTVariables::initial_value_as_pair</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">RTVariables::initial_value_as_pair</span></span>:<br/><a href="5-vrb.html#SP14">&#167;14</a><br/>Emit - <a href="2-emt.html#SP12">&#167;12</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="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="function-syntax">RTVariables::initial_value_as_pair</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">RTVariables::initial_value_as_pair</span></span>:<br/><a href="5-vrb.html#SP14">&#167;14</a><br/>Emit - <a href="2-emt.html#SP11">&#167;11</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="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nlv</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_DATA_VHMODE</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_DATA_VHMODE</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">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">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-vrb.html#SP16" class="function-link"><span class="function-syntax">RTVariables::holster_initial_value</span></a><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="5-vrb.html#SP16" class="function-link"><span class="function-syntax">RTVariables::holster_initial_value</span></a><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">);</span>

View file

@ -111,12 +111,12 @@ constants.
<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><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">STORY_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">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">STORY_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">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_title_VAR</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">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_title_VAR</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">NonlocalVariables::initial_value_as_plain_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_title_VAR</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">NonlocalVariables::initial_value_as_plain_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_title_VAR</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP12" class="function-link"><span class="function-syntax">Emit::initial_value_as_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">story_title_VAR</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::initial_value_as_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">story_title_VAR</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP12" class="function-link"><span class="function-syntax">Emit::initial_value_as_raw_text</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">STORY_MD_HL</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::initial_value_as_raw_text</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">STORY_MD_HL</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">story_title_VAR</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">story_title_VAR</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">else</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::text_constant_from_wide_string</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"\"Welcome\""</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::text_constant_from_wide_string</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"\"Welcome\""</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::text_constant</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">STORY_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"Untitled"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</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">STORY_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"Untitled"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</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">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">iname</span><span class="plain-syntax">);</span>
</pre> </pre>
@ -131,12 +131,12 @@ constants.
<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><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">HEADLINE_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">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">HEADLINE_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">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_headline_VAR</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">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_headline_VAR</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">NonlocalVariables::initial_value_as_plain_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_headline_VAR</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">NonlocalVariables::initial_value_as_plain_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_headline_VAR</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP12" class="function-link"><span class="function-syntax">Emit::initial_value_as_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">story_headline_VAR</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::initial_value_as_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">story_headline_VAR</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP12" class="function-link"><span class="function-syntax">Emit::initial_value_as_raw_text</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">HEADLINE_MD_HL</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::initial_value_as_raw_text</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">HEADLINE_MD_HL</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">story_headline_VAR</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">story_headline_VAR</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">else</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::text_constant_from_wide_string</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"\"An Interactive Fiction\""</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::text_constant_from_wide_string</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"\"An Interactive Fiction\""</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::text_constant</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">HEADLINE_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"An Interactive Fiction"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</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">HEADLINE_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"An Interactive Fiction"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</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">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">iname</span><span class="plain-syntax">);</span>
</pre> </pre>
@ -151,15 +151,15 @@ constants.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_author_VAR</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">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_author_VAR</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">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">STORY_AUTHOR_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">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">STORY_AUTHOR_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">NonlocalVariables::initial_value_as_plain_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_author_VAR</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">NonlocalVariables::initial_value_as_plain_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_author_VAR</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP12" class="function-link"><span class="function-syntax">Emit::initial_value_as_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">story_author_VAR</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::initial_value_as_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">story_author_VAR</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">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">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP12" class="function-link"><span class="function-syntax">Emit::initial_value_as_raw_text</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">AUTHOR_MD_HL</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::initial_value_as_raw_text</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">AUTHOR_MD_HL</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">story_author_VAR</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">story_author_VAR</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">else</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">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">STORY_AUTHOR_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">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">STORY_AUTHOR_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::unchecked_numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</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-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::unchecked_numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</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-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">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">iname</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::text_constant</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">AUTHOR_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"Anonymous"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</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">AUTHOR_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"Anonymous"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="6-bd.html#SP1">&#167;1</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="6-bd.html#SP1">&#167;1</a>.</li></ul>
@ -172,10 +172,10 @@ constants.
<pre class="displayed-code all-displayed-code code-font"> <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">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_release_number_VAR</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">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_release_number_VAR</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">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">RELEASE_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">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">RELEASE_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP12" class="function-link"><span class="function-syntax">Emit::initial_value_as_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">story_release_number_VAR</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::initial_value_as_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">story_release_number_VAR</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">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">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP12" class="function-link"><span class="function-syntax">Emit::initial_value_as_constant</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">RELEASE_MD_HL</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::initial_value_as_constant</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">RELEASE_MD_HL</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">story_release_number_VAR</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">story_release_number_VAR</span><span class="plain-syntax">);</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="6-bd.html#SP1">&#167;1</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="6-bd.html#SP1">&#167;1</a>.</li></ul>
@ -193,8 +193,8 @@ should be able to fake the date-stamp with dates of their own choosing.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">year_digits</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">tm_year</span><span class="plain-syntax">) % </span><span class="constant-syntax">100</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">year_digits</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">tm_year</span><span class="plain-syntax">) % </span><span class="constant-syntax">100</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">SN</span><span class="plain-syntax">, </span><span class="string-syntax">"%02d%02d%02d"</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">SN</span><span class="plain-syntax">, </span><span class="string-syntax">"%02d%02d%02d"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">year_digits</span><span class="plain-syntax">, (</span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">tm_mon</span><span class="plain-syntax">)+1, </span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">tm_mday</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">year_digits</span><span class="plain-syntax">, (</span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">tm_mon</span><span class="plain-syntax">)+1, </span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">tm_mday</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::text_constant</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">SERIAL_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">BibliographicData::read_uuid</span><span class="plain-syntax">());</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</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">SERIAL_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">BibliographicData::read_uuid</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::serial_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">SN</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::serial_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">SN</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">SN</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">SN</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">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">iname</span><span class="plain-syntax">);</span>
</pre> </pre>
@ -207,38 +207,38 @@ not compile to any data in the object code:
</p> </p>
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::text_constant</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">IFID_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">BibliographicData::read_uuid</span><span class="plain-syntax">());</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</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">IFID_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">BibliographicData::read_uuid</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">lang</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">lang</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Projects::get_language_of_play</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::project</span><span class="plain-syntax">());</span> <span class="plain-syntax"> </span><span class="identifier-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Projects::get_language_of_play</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::project</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">L</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">lang</span><span class="plain-syntax">, </span><span class="string-syntax">"English"</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">L</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">lang</span><span class="plain-syntax">, </span><span class="string-syntax">"English"</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">lang</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">title</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">lang</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">title</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::text_constant</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">LANGUAGE_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">lang</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</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">LANGUAGE_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">lang</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">lang</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">lang</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">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BibliographicData::episode_number</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">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BibliographicData::episode_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">E</span><span class="plain-syntax"> &gt;= </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">E</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</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">EPISODE_NUMBER_MD_HL</span><span class="plain-syntax">), (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</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">EPISODE_NUMBER_MD_HL</span><span class="plain-syntax">), (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">E</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">series</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">series</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">series</span><span class="plain-syntax">, </span><span class="string-syntax">"%w"</span><span class="plain-syntax">, </span><span class="identifier-syntax">BibliographicData::series_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">series</span><span class="plain-syntax">, </span><span class="string-syntax">"%w"</span><span class="plain-syntax">, </span><span class="identifier-syntax">BibliographicData::series_name</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::text_constant</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">SERIES_NAME_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">series</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</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">SERIES_NAME_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">series</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">series</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">series</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">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_description_VAR</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">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_description_VAR</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP12" class="function-link"><span class="function-syntax">Emit::initial_value_as_raw_text</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">DESCRIPTION_MD_HL</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::initial_value_as_raw_text</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">DESCRIPTION_MD_HL</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">story_description_VAR</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">story_description_VAR</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">else</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::text_constant</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">DESCRIPTION_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"None"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</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">DESCRIPTION_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"None"</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">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_genre_VAR</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">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_genre_VAR</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP12" class="function-link"><span class="function-syntax">Emit::initial_value_as_raw_text</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">GENRE_MD_HL</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::initial_value_as_raw_text</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">GENRE_MD_HL</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">story_genre_VAR</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">story_genre_VAR</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">else</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::text_constant</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">GENRE_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"Fiction"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</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">GENRE_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"Fiction"</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">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_creation_year_VAR</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">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">story_creation_year_VAR</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP12" class="function-link"><span class="function-syntax">Emit::initial_value_as_raw_text</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">YEAR_MD_HL</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::initial_value_as_raw_text</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">YEAR_MD_HL</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">story_creation_year_VAR</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">story_creation_year_VAR</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">else</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::text_constant</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">YEAR_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"(This year)"</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</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">YEAR_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"(This year)"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span> <span class="plain-syntax"> }</span>
</pre> </pre>
<ul class="endnotetexts"><li>This code is used in <a href="6-bd.html#SP1">&#167;1</a>.</li></ul> <ul class="endnotetexts"><li>This code is used in <a href="6-bd.html#SP1">&#167;1</a>.</li></ul>
@ -253,7 +253,7 @@ around it, in byte-accessible memory.
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTBibliographicData::IFID_text</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">RTBibliographicData::IFID_text</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">uuid</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BibliographicData::read_uuid</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">uuid</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BibliographicData::read_uuid</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">UUID_array_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">UUID_ARRAY_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">UUID_array_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">UUID_ARRAY_HL</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::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">UUID_array_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">uuid</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">UUID_array_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">uuid</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">UUID_array_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">UUID_array_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>

View file

@ -148,7 +148,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> (</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">store_in_negation</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span> <span class="plain-syntax"> (</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">store_in_negation</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</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">storage_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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">storage_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">pp</span><span class="plain-syntax">) </span><span class="identifier-syntax">storage_iname</span><span class="plain-syntax"> = </span><a href="6-pp.html#SP7" class="function-link"><span class="function-syntax">RTPropertyPermissions::get_table_storage_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pp</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">pp</span><span class="plain-syntax">) </span><span class="identifier-syntax">storage_iname</span><span class="plain-syntax"> = </span><a href="6-pp.html#SP7" class="function-link"><span class="function-syntax">RTPropertyPermissions::get_table_storage_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pp</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP16" class="function-link"><span class="function-syntax">Emit::permission</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">storage_iname</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP15" class="function-link"><span class="function-syntax">Emit::permission</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">owner_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">storage_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. In-table storage. </b>Some kinds of non-object are created by table, with the table columns holding the <p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. In-table storage. </b>Some kinds of non-object are created by table, with the table columns holding the

View file

@ -173,7 +173,7 @@ value the property will have, and compiles a clause as appropriate.
<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_DATA_VHMODE</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_DATA_VHMODE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Properties::compile_inferred_value</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">Properties::compile_inferred_value</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Holsters::unholster_to_pair</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">VH</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Holsters::unholster_to_pair</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">VH</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP17" class="function-link"><span class="function-syntax">Emit::propertyvalue</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><a href="6-pp.html#SP1" class="function-link"><span class="function-syntax">RTPropertyPermissions::owner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">), </span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP16" class="function-link"><span class="function-syntax">Emit::propertyvalue</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><a href="6-pp.html#SP1" class="function-link"><span class="function-syntax">RTPropertyPermissions::owner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">), </span><span class="identifier-syntax">val</span><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><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> <span class="plain-syntax"> }</span>
</pre> </pre>

View file

@ -79,7 +79,7 @@ at run-time, so we can't know now how many we will need.
<pre class="displayed-code all-displayed-code code-font"> <pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTMap::compile_model_tables</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span> <span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTMap::compile_model_tables</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ndi</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">NO_DIRECTIONS_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">ndi</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">NO_DIRECTIONS_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ndi</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Map::number_of_directions</span><span class="plain-syntax">());</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ndi</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Map::number_of_directions</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">ndi</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">ndi</span><span class="plain-syntax">);</span>
<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><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>

View file

@ -101,7 +101,7 @@ function togglePopup(material_id) {
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTPlayer::InitialSituation_define</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTPlayer::InitialSituation_define</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</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="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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="identifier-syntax">id</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">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="identifier-syntax">id</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_word</span></a><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="plain-syntax"> </span><a href="2-ea.html#SP2" class="function-link"><span class="function-syntax">EmitArrays::begin_word</span></a><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="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">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><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">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><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">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">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
</pre> </pre>

View file

@ -126,7 +126,7 @@ fact rewritten it, so that the whole command must be re-parsed afresh.
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTCommandGrammars::grammar_constant</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">RTCommandGrammars::grammar_constant</span></span>:<br/><a href="7-cg.html#SP1">&#167;1</a></span></button><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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span> <span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTCommandGrammars::grammar_constant</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">RTCommandGrammars::grammar_constant</span></span>:<br/><a href="7-cg.html#SP1">&#167;1</a></span></button><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="reserved-syntax">int</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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="identifier-syntax">N</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">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="identifier-syntax">N</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">V</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">V</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">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">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">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">iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>
@ -326,7 +326,7 @@ those which do, we queue compilation requests with suitable agents.
<span class="plain-syntax"> </span><a href="2-ea.html#SP5" 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> <span class="plain-syntax"> </span><a href="2-ea.html#SP5" 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>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">command</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">Wordings::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">command</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" 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">NO_VERB_VERB_DEFINED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">PR</span><span class="plain-syntax">),</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" 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">NO_VERB_VERB_DEFINED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">PR</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="constant-syntax">1</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="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="plain-syntax">}</span>
@ -510,7 +510,7 @@ for the <span class="extract"><span class="extract-syntax">name</span></span> pr
<span class="plain-syntax"> </span><span class="identifier-syntax">cgl</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">metadata_package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">line</span><span class="plain-syntax">;</span> <span class="plain-syntax"> </span><span class="identifier-syntax">cgl</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">metadata_package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">line</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">cgl</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">xref_iname</span><span class="plain-syntax"> =</span> <span class="plain-syntax"> </span><span class="identifier-syntax">cgl</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">xref_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">CG_XREF_SYMBOL_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">line</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">CG_XREF_SYMBOL_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">line</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cgl</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">xref_iname</span><span class="plain-syntax">, </span><span class="constant-syntax">561</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cgl</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">xref_iname</span><span class="plain-syntax">, </span><span class="constant-syntax">561</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">cgl</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">resulting_action</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">cgl</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">resulting_action</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="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">CG_LINES_PRODUCING_HAP</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="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">CG_LINES_PRODUCING_HAP</span><span class="plain-syntax">,</span>

View file

@ -508,7 +508,7 @@ function to process it.
<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="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="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ma_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">MISTAKEACTION_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">ma_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">MISTAKEACTION_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::unchecked_numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ma_iname</span><span class="plain-syntax">, </span><span class="constant-syntax">10000</span><span class="plain-syntax">);</span> <span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::unchecked_numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ma_iname</span><span class="plain-syntax">, </span><span class="constant-syntax">10000</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterNames::annotate_b</span><span class="plain-syntax">(</span><span class="identifier-syntax">ma_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">ACTION_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">InterNames::annotate_b</span><span class="plain-syntax">(</span><span class="identifier-syntax">ma_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">ACTION_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="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">ma_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">ma_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span> <span class="plain-syntax">}</span>

View file

@ -1,6 +1,6 @@
Total memory consumption was 412266K = 403 MB Total memory consumption was 411466K = 402 MB
66.3% was used for 2045682 objects, in 417122 frames in 342 x 800K = 273600K = 267 MB: 66.2% was used for 2045684 objects, in 417124 frames in 341 x 800K = 272800K = 266 MB:
10.4% linked_list 78564 objects, 43995840 bytes 10.4% linked_list 78564 objects, 43995840 bytes
9.9% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes 9.9% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
@ -100,7 +100,7 @@ Total memory consumption was 412266K = 403 MB
---- property 146 objects, 19856 bytes ---- property 146 objects, 19856 bytes
---- timed_rules_rfd_data 400 objects, 19200 bytes ---- timed_rules_rfd_data 400 objects, 19200 bytes
---- pipeline_step 14 objects, 18928 bytes ---- pipeline_step 14 objects, 18928 bytes
---- method 379 objects, 18192 bytes ---- method 381 objects, 18288 bytes
---- pcalc_prop_deferral 86 objects, 17888 bytes ---- pcalc_prop_deferral 86 objects, 17888 bytes
---- instance 167 objects, 17368 bytes ---- instance 167 objects, 17368 bytes
---- parse_node_tree 20 objects, 17280 bytes ---- parse_node_tree 20 objects, 17280 bytes
@ -235,9 +235,9 @@ Total memory consumption was 412266K = 403 MB
---- kind_template_definition 1 object, 40 bytes ---- kind_template_definition 1 object, 40 bytes
---- I6_generation_data 1 object, 40 bytes ---- I6_generation_data 1 object, 40 bytes
33.6% was used for memory not allocated for objects: 33.7% was used for memory not allocated for objects:
19.5% text stream storage 82731208 bytes in 495962 claims 19.6% text stream storage 82730572 bytes in 495958 claims
1.1% dictionary storage 4871168 bytes in 7265 claims 1.1% dictionary storage 4871168 bytes in 7265 claims
---- sorting 736 bytes in 3 claims ---- sorting 736 bytes in 3 claims
1.7% source text 7200000 bytes in 3 claims 1.7% source text 7200000 bytes in 3 claims
@ -255,5 +255,5 @@ Total memory consumption was 412266K = 403 MB
---- code generation workspace for objects 1336 bytes in 4 claims ---- code generation workspace for objects 1336 bytes in 4 claims
---- emitter array storage 279904 bytes in 1996 claims ---- emitter array storage 279904 bytes in 1996 claims
20.2% was overhead - 85439880 bytes = 83437K = 81 MB 20.0% was overhead - 84620584 bytes = 82637K = 80 MB

View file

@ -1,34 +1,34 @@
100.0% in inform7 run 100.0% in inform7 run
56.4% in compilation to Inter 56.7% in compilation to Inter
41.0% in //Sequence::undertake_queued_tasks// 41.1% in //Sequence::undertake_queued_tasks//
3.6% in //MajorNodes::pre_pass// 3.6% in //MajorNodes::pre_pass//
2.6% in //MajorNodes::pass_1// 2.6% in //MajorNodes::pass_1//
1.5% in //RTPhrasebook::compile_entries// 1.6% in //RTPhrasebook::compile_entries//
1.4% in //ImperativeDefinitions::assess_all// 1.4% in //ImperativeDefinitions::assess_all//
1.2% in //RTKindConstructors::compile// 1.3% in //RTKindConstructors::compile//
0.4% in //ImperativeDefinitions::compile_first_block// 0.4% in //ImperativeDefinitions::compile_first_block//
0.4% in //MajorNodes::pass_2// 0.4% in //MajorNodes::pass_2//
0.4% in //Sequence::undertake_queued_tasks// 0.4% in //Sequence::undertake_queued_tasks//
0.4% in //Sequence::undertake_queued_tasks//
0.4% in //World::stage_V// 0.4% in //World::stage_V//
0.3% in //Sequence::undertake_queued_tasks//
0.1% in //CompletionModule::compile// 0.1% in //CompletionModule::compile//
0.1% in //InferenceSubjects::emit_all// 0.1% in //InferenceSubjects::emit_all//
0.1% in //RTKindConstructors::compile_permissions// 0.1% in //RTKindConstructors::compile_permissions//
0.1% in //Task::make_built_in_kind_constructors// 0.1% in //Task::make_built_in_kind_constructors//
0.1% in //World::stages_II_and_III// 0.1% in //World::stages_II_and_III//
1.9% not specifically accounted for 2.1% not specifically accounted for
41.4% in running Inter pipeline 41.2% in running Inter pipeline
13.0% in step preparation 12.6% in step preparation
10.2% in inter step 6/14: make-synoptic-module 10.0% in inter step 6/14: make-synoptic-module
7.8% in inter step 14/14: generate inform6 -> auto.inf 7.8% in inter step 14/14: generate inform6 -> auto.inf
4.1% in inter step 5/14: load-binary-kits 4.2% in inter step 5/14: load-binary-kits
2.8% in inter step 9/14: make-identifiers-unique 2.7% in inter step 9/14: make-identifiers-unique
0.3% in inter step 12/14: eliminate-redundant-operations 0.4% in inter step 12/14: eliminate-redundant-operations
0.3% in inter step 4/14: compile-splats 0.2% in inter step 4/14: compile-splats
0.3% in inter step 7/14: shorten-wiring 0.2% in inter step 7/14: shorten-wiring
0.2% in inter step 8/14: detect-indirect-calls
0.1% in inter step 10/14: reconcile-verbs 0.1% in inter step 10/14: reconcile-verbs
0.1% in inter step 11/14: eliminate-redundant-labels 0.1% in inter step 11/14: eliminate-redundant-labels
0.1% in inter step 8/14: detect-indirect-calls 2.0% not specifically accounted for
1.9% not specifically accounted for
1.7% in supervisor 1.7% in supervisor
0.4% not specifically accounted for 0.3% not specifically accounted for

View file

@ -25,7 +25,7 @@ inter_tree *Emit::tree(void) {
} }
inter_ti Emit::symbol_id(inter_symbol *S) { inter_ti Emit::symbol_id(inter_symbol *S) {
return InterSymbolsTable::id_from_symbol_at_bookmark(Emit::at(), S); return InterSymbolsTable::id_at_bookmark(Emit::at(), S);
} }
inter_warehouse *Emit::warehouse(void) { inter_warehouse *Emit::warehouse(void) {
@ -102,31 +102,19 @@ void Emit::kind(inter_name *iname, inter_name *super,
inter_ti constructor, int arity, kind **operand_kinds) { inter_ti constructor, int arity, kind **operand_kinds) {
packaging_state save = Packaging::enter_home_of(iname); packaging_state save = Packaging::enter_home_of(iname);
inter_symbol *S = InterNames::to_symbol(iname); inter_symbol *S = InterNames::to_symbol(iname);
inter_ti SID = 0;
if (S) SID = Emit::symbol_id(S);
inter_symbol *SS = (super)?InterNames::to_symbol(super):NULL; inter_symbol *SS = (super)?InterNames::to_symbol(super):NULL;
inter_ti SUP = 0;
if (SS) SUP = Emit::symbol_id(SS);
inter_ti operands[MAX_KIND_ARITY]; inter_ti operands[MAX_KIND_ARITY];
if (arity > MAX_KIND_ARITY) internal_error("kind arity too high"); if (arity > MAX_KIND_ARITY) internal_error("kind arity too high");
for (int i=0; i<arity; i++) { for (int i=0; i<arity; i++) {
if ((operand_kinds[i] == K_nil) || (operand_kinds[i] == K_void)) operands[i] = 0; if ((operand_kinds[i] == K_nil) || (operand_kinds[i] == K_void)) operands[i] = 0;
else operands[i] = Produce::kind_to_TID(Emit::at(), operand_kinds[i]); else operands[i] = Produce::kind_to_TID(Emit::at(), operand_kinds[i]);
} }
Emit::kind_inner(SID, SUP, constructor, arity, operands); Produce::guard(TypenameInstruction::new(Emit::at(), S, constructor, SS, arity,
operands, Emit::baseline(), NULL));
InterNames::to_symbol(iname); InterNames::to_symbol(iname);
Packaging::exit(Emit::tree(), save); Packaging::exit(Emit::tree(), save);
} }
@ The above both use:
=
void Emit::kind_inner(inter_ti SID, inter_ti SUP,
inter_ti constructor, int arity, inter_ti *operands) {
Produce::guard(TypenameInstruction::new(Emit::at(), SID, constructor, SUP, arity,
operands, Emit::baseline(), NULL));
}
@ Default values for kinds are emitted thus. This is inefficient and maybe ought @ Default values for kinds are emitted thus. This is inefficient and maybe ought
to be replaced by a hash, but the list is short and the function is called to be replaced by a hash, but the list is short and the function is called
so little that it probably makes little difference. so little that it probably makes little difference.

View file

@ -423,7 +423,7 @@ them on a package-by-package basis, so it is an error to call this function if
@ The same operation, but the local context expressed differently: @ The same operation, but the local context expressed differently:
= =
inter_ti InterSymbolsTable::id_from_symbol_at_bookmark(inter_bookmark *IBM, inter_ti InterSymbolsTable::id_at_bookmark(inter_bookmark *IBM,
inter_symbol *S) { inter_symbol *S) {
return InterSymbolsTable::id_from_symbol(InterBookmark::tree(IBM), return InterSymbolsTable::id_from_symbol(InterBookmark::tree(IBM),
InterBookmark::package(IBM), S); InterBookmark::package(IBM), S);

View file

@ -298,7 +298,7 @@ inter_ti InterTypes::to_TID(inter_symbols_table *T, inter_type type) {
inter_ti InterTypes::to_TID_at(inter_bookmark *IBM, inter_type type) { inter_ti InterTypes::to_TID_at(inter_bookmark *IBM, inter_type type) {
if (type.type_name) if (type.type_name)
return InterSymbolsTable::id_from_symbol_at_bookmark(IBM, type.type_name); return InterSymbolsTable::id_at_bookmark(IBM, type.type_name);
return type.underlying_constructor; return type.underlying_constructor;
} }

View file

@ -29,7 +29,7 @@ compulsory words |ID_IFLD| and |LEVEL_IFLD|, followed by:
inter_error_message *AppendInstruction::new(inter_bookmark *IBM, inter_symbol *S, inter_error_message *AppendInstruction::new(inter_bookmark *IBM, inter_symbol *S,
text_stream *append_text, inter_ti level, struct inter_error_location *eloc) { text_stream *append_text, inter_ti level, struct inter_error_location *eloc) {
inter_tree_node *P = Inode::new_with_2_data_fields(IBM, APPEND_IST, inter_tree_node *P = Inode::new_with_2_data_fields(IBM, APPEND_IST,
/* SYMBOL_APPEND_IFLD: */ InterSymbolsTable::id_from_symbol_at_bookmark(IBM, S), /* SYMBOL_APPEND_IFLD: */ InterSymbolsTable::id_at_bookmark(IBM, S),
/* CONTENT_APPEND_IFLD: */ InterWarehouse::create_text_at(IBM, append_text), /* CONTENT_APPEND_IFLD: */ InterWarehouse::create_text_at(IBM, append_text),
eloc, level); eloc, level);
inter_error_message *E = VerifyingInter::instruction(InterBookmark::package(IBM), P); inter_error_message *E = VerifyingInter::instruction(InterBookmark::package(IBM), P);

View file

@ -37,7 +37,7 @@ The simplest version, though, has a single value. The length is then 7 words.
inter_error_message *ConstantInstruction::new(inter_bookmark *IBM, inter_symbol *S, inter_error_message *ConstantInstruction::new(inter_bookmark *IBM, inter_symbol *S,
inter_type type, inter_pair val, inter_ti level, inter_error_location *eloc) { inter_type type, inter_pair val, inter_ti level, inter_error_location *eloc) {
inter_tree_node *P = Inode::new_with_5_data_fields(IBM, CONSTANT_IST, inter_tree_node *P = Inode::new_with_5_data_fields(IBM, CONSTANT_IST,
/* DEFN_CONST_IFLD: */ InterSymbolsTable::id_from_symbol_at_bookmark(IBM, S), /* DEFN_CONST_IFLD: */ InterSymbolsTable::id_at_bookmark(IBM, S),
/* TYPE_CONST_IFLD: */ InterTypes::to_TID_at(IBM, type), /* TYPE_CONST_IFLD: */ InterTypes::to_TID_at(IBM, type),
/* FORMAT_CONST_IFLD: */ CONST_LIST_FORMAT_NONE, /* FORMAT_CONST_IFLD: */ CONST_LIST_FORMAT_NONE,
/* DATA_CONST_IFLD: */ InterValuePairs::to_word1(val), /* DATA_CONST_IFLD: */ InterValuePairs::to_word1(val),
@ -68,7 +68,7 @@ inter_error_message *ConstantInstruction::new_list(inter_bookmark *IBM, inter_sy
inter_error_location *eloc) { inter_error_location *eloc) {
if (format == CONST_LIST_FORMAT_NONE) internal_error("not a list"); if (format == CONST_LIST_FORMAT_NONE) internal_error("not a list");
inter_tree_node *AP = Inode::new_with_3_data_fields(IBM, CONSTANT_IST, inter_tree_node *AP = Inode::new_with_3_data_fields(IBM, CONSTANT_IST,
/* DEFN_CONST_IFLD: */ InterSymbolsTable::id_from_symbol_at_bookmark(IBM, S), /* DEFN_CONST_IFLD: */ InterSymbolsTable::id_at_bookmark(IBM, S),
/* TYPE_CONST_IFLD: */ InterTypes::to_TID_at(IBM, type), /* TYPE_CONST_IFLD: */ InterTypes::to_TID_at(IBM, type),
/* FORMAT_CONST_IFLD: */ (inter_ti) format, /* FORMAT_CONST_IFLD: */ (inter_ti) format,
eloc, level); eloc, level);

View file

@ -28,7 +28,7 @@ compulsory words |ID_IFLD| and |LEVEL_IFLD|, followed by:
inter_error_message *DefaultValueInstruction::new(inter_bookmark *IBM, inter_error_message *DefaultValueInstruction::new(inter_bookmark *IBM,
inter_symbol *typename, inter_pair val, inter_ti level, inter_error_location *eloc) { inter_symbol *typename, inter_pair val, inter_ti level, inter_error_location *eloc) {
inter_tree_node *P = Inode::new_with_3_data_fields(IBM, DEFAULTVALUE_IST, inter_tree_node *P = Inode::new_with_3_data_fields(IBM, DEFAULTVALUE_IST,
/* TYPE_DEF_IFLD: */ InterSymbolsTable::id_from_symbol_at_bookmark(IBM, typename), /* TYPE_DEF_IFLD: */ InterSymbolsTable::id_at_bookmark(IBM, typename),
/* VAL1_DEF_IFLD: */ InterValuePairs::to_word1(val), /* VAL1_DEF_IFLD: */ InterValuePairs::to_word1(val),
/* VAL2_DEF_IFLD: */ InterValuePairs::to_word2(val), /* VAL2_DEF_IFLD: */ InterValuePairs::to_word2(val),
eloc, level); eloc, level);

View file

@ -35,8 +35,8 @@ inter_error_message *InstanceInstruction::new(inter_bookmark *IBM, inter_symbol
inter_warehouse *warehouse = InterBookmark::warehouse(IBM); inter_warehouse *warehouse = InterBookmark::warehouse(IBM);
inter_package *pack = InterBookmark::package(IBM); inter_package *pack = InterBookmark::package(IBM);
inter_tree_node *P = Inode::new_with_6_data_fields(IBM, INSTANCE_IST, inter_tree_node *P = Inode::new_with_6_data_fields(IBM, INSTANCE_IST,
/* DEFN_INST_IFLD: */ InterSymbolsTable::id_from_symbol_at_bookmark(IBM, S), /* DEFN_INST_IFLD: */ InterSymbolsTable::id_at_bookmark(IBM, S),
/* TYPE_INST_IFLD: */ InterSymbolsTable::id_from_symbol_at_bookmark(IBM, typename_s), /* TYPE_INST_IFLD: */ InterSymbolsTable::id_at_bookmark(IBM, typename_s),
/* VAL1_INST_IFLD: */ InterValuePairs::to_word1(val), /* VAL1_INST_IFLD: */ InterValuePairs::to_word1(val),
/* VAL2_INST_IFLD: */ InterValuePairs::to_word2(val), /* VAL2_INST_IFLD: */ InterValuePairs::to_word2(val),
/* PROP_LIST_INST_IFLD: */ InterWarehouse::create_node_list(warehouse, pack), /* PROP_LIST_INST_IFLD: */ InterWarehouse::create_node_list(warehouse, pack),
@ -52,6 +52,8 @@ void InstanceInstruction::transpose(inter_construct *IC, inter_tree_node *P,
inter_ti *grid, inter_ti grid_extent, inter_error_message **E) { inter_ti *grid, inter_ti grid_extent, inter_error_message **E) {
P->W.instruction[PROP_LIST_INST_IFLD] = grid[P->W.instruction[PROP_LIST_INST_IFLD]]; P->W.instruction[PROP_LIST_INST_IFLD] = grid[P->W.instruction[PROP_LIST_INST_IFLD]];
P->W.instruction[PERM_LIST_INST_IFLD] = grid[P->W.instruction[PERM_LIST_INST_IFLD]]; P->W.instruction[PERM_LIST_INST_IFLD] = grid[P->W.instruction[PERM_LIST_INST_IFLD]];
InterValuePairs::set(P, VAL1_INST_IFLD,
InterValuePairs::transpose(InterValuePairs::get(P, VAL1_INST_IFLD), grid, grid_extent, E));
} }
@ Verification does more than making sanity checks: it also calculates and sets @ Verification does more than making sanity checks: it also calculates and sets

View file

@ -74,7 +74,7 @@ inter_error_message *PackageInstruction::new_inner(inter_bookmark *IBM,
TextualInter::new_symbol(eloc, InterBookmark::scope(IBM), name_text, &E); TextualInter::new_symbol(eloc, InterBookmark::scope(IBM), name_text, &E);
if (E) return E; if (E) return E;
inter_tree_node *P = Inode::new_with_4_data_fields(IBM, PACKAGE_IST, inter_tree_node *P = Inode::new_with_4_data_fields(IBM, PACKAGE_IST,
/* DEFN_PACKAGE_IFLD: */ InterSymbolsTable::id_from_symbol_at_bookmark(IBM, package_name), /* DEFN_PACKAGE_IFLD: */ InterSymbolsTable::id_at_bookmark(IBM, package_name),
/* PTYPE_PACKAGE_IFLD: */ InterSymbolsTable::id_from_symbol(I, NULL, ptype_name), /* PTYPE_PACKAGE_IFLD: */ InterSymbolsTable::id_from_symbol(I, NULL, ptype_name),
/* SYMBOLS_PACKAGE_IFLD: */ STID, /* SYMBOLS_PACKAGE_IFLD: */ STID,
/* PID_PACKAGE_IFLD: */ 0, /* but see just below... */ /* PID_PACKAGE_IFLD: */ 0, /* but see just below... */

View file

@ -26,7 +26,7 @@ compulsory words |ID_IFLD| and |LEVEL_IFLD|, followed by:
inter_error_message *PackageTypeInstruction::new(inter_bookmark *IBM, inter_symbol *ptype, inter_error_message *PackageTypeInstruction::new(inter_bookmark *IBM, inter_symbol *ptype,
inter_ti level, inter_error_location *eloc) { inter_ti level, inter_error_location *eloc) {
inter_tree_node *P = Inode::new_with_1_data_field(IBM, PACKAGETYPE_IST, inter_tree_node *P = Inode::new_with_1_data_field(IBM, PACKAGETYPE_IST,
/* DEFN_PTYPE_IFLD: */ InterSymbolsTable::id_from_symbol_at_bookmark(IBM, ptype), /* DEFN_PTYPE_IFLD: */ InterSymbolsTable::id_at_bookmark(IBM, ptype),
eloc, level); eloc, level);
inter_error_message *E = VerifyingInter::instruction(InterBookmark::package(IBM), P); inter_error_message *E = VerifyingInter::instruction(InterBookmark::package(IBM), P);
if (E) return E; if (E) return E;

View file

@ -29,10 +29,10 @@ inter_error_message *PermissionInstruction::new(inter_bookmark *IBM, inter_symbo
inter_symbol *owner_s, inter_symbol *storage_s, inter_ti level, inter_symbol *owner_s, inter_symbol *storage_s, inter_ti level,
inter_error_location *eloc) { inter_error_location *eloc) {
inter_ti SID = 0; inter_ti SID = 0;
if (storage_s) SID = InterSymbolsTable::id_from_symbol_at_bookmark(IBM, storage_s); if (storage_s) SID = InterSymbolsTable::id_at_bookmark(IBM, storage_s);
inter_tree_node *P = Inode::new_with_3_data_fields(IBM, PERMISSION_IST, inter_tree_node *P = Inode::new_with_3_data_fields(IBM, PERMISSION_IST,
/* PROP_PERM_IFLD: */ InterSymbolsTable::id_from_symbol_at_bookmark(IBM, prop_s), /* PROP_PERM_IFLD: */ InterSymbolsTable::id_at_bookmark(IBM, prop_s),
/* OWNER_PERM_IFLD: */ InterSymbolsTable::id_from_symbol_at_bookmark(IBM, owner_s), /* OWNER_PERM_IFLD: */ InterSymbolsTable::id_at_bookmark(IBM, owner_s),
/* STORAGE_PERM_IFLD: */ SID, /* STORAGE_PERM_IFLD: */ SID,
eloc, level); eloc, level);
inter_error_message *E = VerifyingInter::instruction(InterBookmark::package(IBM), P); inter_error_message *E = VerifyingInter::instruction(InterBookmark::package(IBM), P);

View file

@ -37,7 +37,7 @@ inter_error_message *PrimitiveInstruction::new(inter_bookmark *IBM, inter_symbol
text_stream *from, text_stream *to, inter_ti level, inter_error_location *eloc) { text_stream *from, text_stream *to, inter_ti level, inter_error_location *eloc) {
inter_tree_node *F = Inode::new_with_1_data_field(IBM, PRIMITIVE_IST, inter_tree_node *F = Inode::new_with_1_data_field(IBM, PRIMITIVE_IST,
/* DEFN_PRIM_IFLD: */ InterSymbolsTable::id_from_symbol_at_bookmark(IBM, prim_name), /* DEFN_PRIM_IFLD: */ InterSymbolsTable::id_at_bookmark(IBM, prim_name),
eloc, level); eloc, level);
inter_error_message *E = NULL; inter_error_message *E = NULL;

View file

@ -33,7 +33,7 @@ inter_error_message *PropertyInstruction::new(inter_bookmark *IBM, inter_symbol
inter_package *pack = InterBookmark::package(IBM); inter_package *pack = InterBookmark::package(IBM);
inter_warehouse *warehouse = InterBookmark::warehouse(IBM); inter_warehouse *warehouse = InterBookmark::warehouse(IBM);
inter_tree_node *P = Inode::new_with_3_data_fields(IBM, PROPERTY_IST, inter_tree_node *P = Inode::new_with_3_data_fields(IBM, PROPERTY_IST,
/* DEFN_PROP_IFLD: */ InterSymbolsTable::id_from_symbol_at_bookmark(IBM, prop_s), /* DEFN_PROP_IFLD: */ InterSymbolsTable::id_at_bookmark(IBM, prop_s),
/* TYPE_PROP_IFLD: */ InterTypes::to_TID_at(IBM, prop_type), /* TYPE_PROP_IFLD: */ InterTypes::to_TID_at(IBM, prop_type),
/* PERM_LIST_PROP_IFLD: */ InterWarehouse::create_node_list(warehouse, pack), /* PERM_LIST_PROP_IFLD: */ InterWarehouse::create_node_list(warehouse, pack),
eloc, level); eloc, level);

View file

@ -12,6 +12,7 @@ void PropertyValueInstruction::define_construct(void) {
InterInstruction::fix_instruction_length_between(IC, 6, 6); InterInstruction::fix_instruction_length_between(IC, 6, 6);
InterInstruction::permit(IC, INSIDE_PLAIN_PACKAGE_ICUP); InterInstruction::permit(IC, INSIDE_PLAIN_PACKAGE_ICUP);
METHOD_ADD(IC, CONSTRUCT_READ_MTID, PropertyValueInstruction::read); METHOD_ADD(IC, CONSTRUCT_READ_MTID, PropertyValueInstruction::read);
METHOD_ADD(IC, CONSTRUCT_TRANSPOSE_MTID, PropertyValueInstruction::transpose);
METHOD_ADD(IC, CONSTRUCT_VERIFY_MTID, PropertyValueInstruction::verify); METHOD_ADD(IC, CONSTRUCT_VERIFY_MTID, PropertyValueInstruction::verify);
METHOD_ADD(IC, CONSTRUCT_WRITE_MTID, PropertyValueInstruction::write); METHOD_ADD(IC, CONSTRUCT_WRITE_MTID, PropertyValueInstruction::write);
} }
@ -30,8 +31,8 @@ inter_error_message *PropertyValueInstruction::new(inter_bookmark *IBM,
inter_symbol *prop_s, inter_symbol *owner_s, inter_pair val, inter_ti level, inter_symbol *prop_s, inter_symbol *owner_s, inter_pair val, inter_ti level,
inter_error_location *eloc) { inter_error_location *eloc) {
inter_tree_node *P = Inode::new_with_4_data_fields(IBM, PROPERTYVALUE_IST, inter_tree_node *P = Inode::new_with_4_data_fields(IBM, PROPERTYVALUE_IST,
/* PROP_PVAL_IFLD: */ InterSymbolsTable::id_from_symbol_at_bookmark(IBM, prop_s), /* PROP_PVAL_IFLD: */ InterSymbolsTable::id_at_bookmark(IBM, prop_s),
/* OWNER_PVAL_IFLD: */ InterSymbolsTable::id_from_symbol_at_bookmark(IBM, owner_s), /* OWNER_PVAL_IFLD: */ InterSymbolsTable::id_at_bookmark(IBM, owner_s),
/* VAL1_PVAL_IFLD: */ InterValuePairs::to_word1(val), /* VAL1_PVAL_IFLD: */ InterValuePairs::to_word1(val),
/* VAL2_PVAL_IFLD: */ InterValuePairs::to_word2(val), /* VAL2_PVAL_IFLD: */ InterValuePairs::to_word2(val),
eloc, level); eloc, level);
@ -41,6 +42,12 @@ inter_error_message *PropertyValueInstruction::new(inter_bookmark *IBM,
return NULL; return NULL;
} }
void PropertyValueInstruction::transpose(inter_construct *IC, inter_tree_node *P,
inter_ti *grid, inter_ti grid_extent, inter_error_message **E) {
InterValuePairs::set(P, VAL1_PVAL_IFLD,
InterValuePairs::transpose(InterValuePairs::get(P, VAL1_PVAL_IFLD), grid, grid_extent, E));
}
@ Verification begins with sanity checks, but then also adds the new property @ Verification begins with sanity checks, but then also adds the new property
value to the list of properties of the owner. value to the list of properties of the owner.

View file

@ -10,8 +10,7 @@ void TypenameInstruction::define_construct(void) {
inter_construct *IC = InterInstruction::create_construct(TYPENAME_IST, I"typename"); inter_construct *IC = InterInstruction::create_construct(TYPENAME_IST, I"typename");
InterInstruction::defines_symbol_in_fields(IC, DEFN_TYPENAME_IFLD, -1); InterInstruction::defines_symbol_in_fields(IC, DEFN_TYPENAME_IFLD, -1);
InterInstruction::specify_syntax(IC, I"typename IDENTIFIER TOKEN TOKENS"); InterInstruction::specify_syntax(IC, I"typename IDENTIFIER TOKEN TOKENS");
InterInstruction::fix_instruction_length_between(IC, InterInstruction::fix_instruction_length_between(IC, 9, UNLIMITED_INSTRUCTION_FRAME_LENGTH);
MIN_EXTENT_TYPENAME_IFR, UNLIMITED_INSTRUCTION_FRAME_LENGTH);
InterInstruction::permit(IC, INSIDE_PLAIN_PACKAGE_ICUP); InterInstruction::permit(IC, INSIDE_PLAIN_PACKAGE_ICUP);
METHOD_ADD(IC, CONSTRUCT_READ_MTID, TypenameInstruction::read); METHOD_ADD(IC, CONSTRUCT_READ_MTID, TypenameInstruction::read);
METHOD_ADD(IC, CONSTRUCT_TRANSPOSE_MTID, TypenameInstruction::transpose); METHOD_ADD(IC, CONSTRUCT_TRANSPOSE_MTID, TypenameInstruction::transpose);
@ -19,7 +18,10 @@ void TypenameInstruction::define_construct(void) {
METHOD_ADD(IC, CONSTRUCT_WRITE_MTID, TypenameInstruction::write); METHOD_ADD(IC, CONSTRUCT_WRITE_MTID, TypenameInstruction::write);
} }
@ @h Instructions.
In bytecode, the frame of a |typename| instruction is laid out with the two
compulsory words |ID_IFLD| and |LEVEL_IFLD|, followed by these. The eventual
length is flexible: there can be any number of operands from 0 upwards.
@d DEFN_TYPENAME_IFLD 2 @d DEFN_TYPENAME_IFLD 2
@d ENUM_RANGE_TYPENAME_IFLD 3 @d ENUM_RANGE_TYPENAME_IFLD 3
@ -30,79 +32,69 @@ void TypenameInstruction::define_construct(void) {
@d CONSTRUCTOR_TYPENAME_IFLD 8 @d CONSTRUCTOR_TYPENAME_IFLD 8
@d OPERANDS_TYPENAME_IFLD 9 @d OPERANDS_TYPENAME_IFLD 9
@d MIN_EXTENT_TYPENAME_IFR 9
= =
void TypenameInstruction::read(inter_construct *IC, inter_bookmark *IBM, inter_line_parse *ilp, inter_error_location *eloc, inter_error_message **E) { inter_error_message *TypenameInstruction::new(inter_bookmark *IBM, inter_symbol *typename_s,
inter_symbol *symb = TextualInter::new_symbol(eloc, InterBookmark::scope(IBM), ilp->mr.exp[0], E); inter_ti constructor, inter_symbol *super_s,
if (*E) return;
inter_semisimple_type_description parsed_description;
InterTypes::initialise_isstd(&parsed_description);
inter_symbol *super_s = NULL;
if (Str::eq(ilp->mr.exp[1], I"<=")) {
super_s = TextualInter::find_symbol(IBM, eloc, ilp->mr.exp[2], TYPENAME_IST, E);
if ((*E == NULL) &&
(InterTypes::is_enumerated(InterTypes::from_type_name(super_s)) == FALSE))
{ *E = InterErrors::quoted(I"not a type which can have subtypes", ilp->mr.exp[2], eloc); return; }
parsed_description.constructor_code = ENUM_ITCONC;
parsed_description.arity = 0;
} else if (Str::eq(ilp->mr.exp[1], I"=")) {
*E = InterTypes::parse_semisimple(ilp->mr.exp[2], InterBookmark::scope(IBM), eloc, &parsed_description);
} else {
*E = InterErrors::quoted(I"expected '=' or '<='", ilp->mr.exp[1], eloc);
}
if (*E == NULL)
*E = TypenameInstruction::new(IBM, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, symb),
parsed_description.constructor_code,
(super_s)?(InterSymbolsTable::id_from_symbol_at_bookmark(IBM, super_s)):0,
parsed_description.arity, parsed_description.operand_TIDs, (inter_ti) ilp->indent_level, eloc);
InterTypes::dispose_of_isstd(&parsed_description);
}
inter_error_message *TypenameInstruction::new(inter_bookmark *IBM, inter_ti SID, inter_ti constructor, inter_ti SUP,
int arity, inter_ti *operands, inter_ti level, inter_error_location *eloc) { int arity, inter_ti *operands, inter_ti level, inter_error_location *eloc) {
if (InterTypes::is_valid_constructor_code(constructor) == FALSE) inter_ti super_SID = 0;
internal_error("constructor out of range"); if (super_s) super_SID = InterSymbolsTable::id_at_bookmark(IBM, super_s);
inter_package *pack = InterBookmark::package(IBM);
inter_warehouse *warehouse = InterBookmark::warehouse(IBM); inter_warehouse *warehouse = InterBookmark::warehouse(IBM);
inter_ti L1 = InterWarehouse::create_node_list(warehouse, InterBookmark::package(IBM)); inter_tree_node *P = Inode::new_with_7_data_fields(IBM, TYPENAME_IST,
inter_ti L2 = InterWarehouse::create_node_list(warehouse, InterBookmark::package(IBM)); /* DEFN_TYPENAME_IFLD: */ InterSymbolsTable::id_at_bookmark(IBM, typename_s),
inter_tree_node *P = Inode::new_with_7_data_fields(IBM, /* ENUM_RANGE_TYPENAME_IFLD: */ 0,
TYPENAME_IST, SID, 0, 0, SUP, L1, L2, /* NO_INSTANCES_TYPENAME_IFLD: */ 0,
constructor, eloc, level); /* SUPER_TYPENAME_IFLD: */ super_SID,
/* PERM_LIST_TYPENAME_IFLD: */ InterWarehouse::create_node_list(warehouse, pack),
/* PLIST_TYPENAME_IFLD: */ InterWarehouse::create_node_list(warehouse, pack),
/* CONSTRUCTOR_TYPENAME_IFLD: */ constructor,
eloc, level);
if (arity > 0) { if (arity > 0) {
Inode::extend_instruction_by(P, (inter_ti) arity); Inode::extend_instruction_by(P, (inter_ti) arity);
for (int i=0; i<arity; i++) P->W.instruction[OPERANDS_TYPENAME_IFLD+i] = operands[i]; for (int i=0; i<arity; i++)
P->W.instruction[OPERANDS_TYPENAME_IFLD+i] = operands[i];
} }
inter_error_message *E = VerifyingInter::instruction(InterBookmark::package(IBM), P); if (E) return E; inter_error_message *E = VerifyingInter::instruction(InterBookmark::package(IBM), P);
if (E) return E;
NodePlacement::move_to_moving_bookmark(P, IBM); NodePlacement::move_to_moving_bookmark(P, IBM);
return NULL; return NULL;
} }
void TypenameInstruction::transpose(inter_construct *IC, inter_tree_node *P, inter_ti *grid, inter_ti grid_extent, inter_error_message **E) { void TypenameInstruction::transpose(inter_construct *IC, inter_tree_node *P,
inter_ti *grid, inter_ti grid_extent, inter_error_message **E) {
P->W.instruction[PERM_LIST_TYPENAME_IFLD] = grid[P->W.instruction[PERM_LIST_TYPENAME_IFLD]]; P->W.instruction[PERM_LIST_TYPENAME_IFLD] = grid[P->W.instruction[PERM_LIST_TYPENAME_IFLD]];
P->W.instruction[PLIST_TYPENAME_IFLD] = grid[P->W.instruction[PLIST_TYPENAME_IFLD]]; P->W.instruction[PLIST_TYPENAME_IFLD] = grid[P->W.instruction[PLIST_TYPENAME_IFLD]];
} }
void TypenameInstruction::verify(inter_construct *IC, inter_tree_node *P, inter_package *owner, inter_error_message **E) { @ Verification consists only of sanity checks.
if (P->W.instruction[ENUM_RANGE_TYPENAME_IFLD] != 0) {
inter_symbol *typename_s = InterSymbolsTable::symbol_from_ID(InterPackage::scope(owner), P->W.instruction[DEFN_TYPENAME_IFLD]); =
if ((typename_s == NULL) || void TypenameInstruction::verify(inter_construct *IC, inter_tree_node *P,
(InterTypes::is_enumerated(InterTypes::from_type_name(typename_s)) == FALSE)) inter_package *owner, inter_error_message **E) {
{ *E = Inode::error(P, I"spurious extent in non-enumeration", NULL); return; } inter_symbol *typename_s = TypenameInstruction::typename(P);
if ((P->W.instruction[ENUM_RANGE_TYPENAME_IFLD] > 0) &&
(InterTypes::is_enumerated(InterTypes::from_type_name(typename_s)) == FALSE)) {
*E = Inode::error(P, I"spurious extent in non-enumeration", NULL);
return;
} }
if (P->W.instruction[SUPER_TYPENAME_IFLD] != 0) { if (P->W.instruction[SUPER_TYPENAME_IFLD] != 0) {
*E = VerifyingInter::SID_field(owner, P, SUPER_TYPENAME_IFLD, TYPENAME_IST); if (*E) return; *E = VerifyingInter::SID_field(owner, P, SUPER_TYPENAME_IFLD, TYPENAME_IST);
inter_symbol *super_s = InterSymbolsTable::symbol_from_ID(InterPackage::scope(owner), P->W.instruction[SUPER_TYPENAME_IFLD]); if (*E) return;
if (InterTypes::is_enumerated(InterTypes::from_type_name(super_s)) == FALSE) inter_symbol *super_s = TypenameInstruction::super(typename_s);
{ *E = Inode::error(P, I"subtype of nonenumerated type", NULL); return; } if (InterTypes::is_enumerated(InterTypes::from_type_name(super_s)) == FALSE) {
*E = Inode::error(P, I"subtype of nonenumerated type", NULL);
return;
}
} }
*E = VerifyingInter::constructor_field(P, CONSTRUCTOR_TYPENAME_IFLD); if (*E) return; *E = VerifyingInter::node_list_field(owner, P, PERM_LIST_TYPENAME_IFLD);
inter_type type = InterTypes::from_constructor_code(P->W.instruction[CONSTRUCTOR_TYPENAME_IFLD]); if (*E) return;
int arity = P->W.extent - MIN_EXTENT_TYPENAME_IFR; *E = VerifyingInter::node_list_field(owner, P, PLIST_TYPENAME_IFLD);
if (*E) return;
*E = VerifyingInter::constructor_field(P, CONSTRUCTOR_TYPENAME_IFLD);
if (*E) return;
inter_type type =
InterTypes::from_constructor_code(TypenameInstruction::constructor(typename_s));
int arity = P->W.extent - OPERANDS_TYPENAME_IFLD;
for (int i=0; i<arity; i++) { for (int i=0; i<arity; i++) {
*E = VerifyingInter::TID_field(owner, P, OPERANDS_TYPENAME_IFLD + i); *E = VerifyingInter::TID_field(owner, P, OPERANDS_TYPENAME_IFLD + i);
if (*E) return; if (*E) return;
@ -116,6 +108,78 @@ void TypenameInstruction::verify(inter_construct *IC, inter_tree_node *P, inter_
} }
} }
@h Creating from textual Inter syntax.
=
void TypenameInstruction::read(inter_construct *IC, inter_bookmark *IBM,
inter_line_parse *ilp, inter_error_location *eloc, inter_error_message **E) {
text_stream *typename_text = ilp->mr.exp[0];
text_stream *operator_text = ilp->mr.exp[1];
text_stream *defn_text = ilp->mr.exp[2];
inter_symbol *symb =
TextualInter::new_symbol(eloc, InterBookmark::scope(IBM), typename_text, E);
if (*E) return;
inter_semisimple_type_description parsed_description;
InterTypes::initialise_isstd(&parsed_description);
inter_symbol *super_s = NULL;
if (Str::eq(operator_text, I"<=")) {
super_s = TextualInter::find_symbol(IBM, eloc, defn_text, TYPENAME_IST, E);
if ((*E == NULL) &&
(InterTypes::is_enumerated(InterTypes::from_type_name(super_s)) == FALSE)) {
*E = InterErrors::quoted(I"not a type which can have subtypes", defn_text, eloc);
return;
}
parsed_description.constructor_code = ENUM_ITCONC;
parsed_description.arity = 0;
} else if (Str::eq(operator_text, I"=")) {
*E = InterTypes::parse_semisimple(ilp->mr.exp[2], InterBookmark::scope(IBM),
eloc, &parsed_description);
} else {
*E = InterErrors::quoted(I"expected '=' or '<='", operator_text, eloc);
}
if (*E == NULL)
*E = TypenameInstruction::new(IBM, symb, parsed_description.constructor_code,
super_s, parsed_description.arity, parsed_description.operand_TIDs,
(inter_ti) ilp->indent_level, eloc);
InterTypes::dispose_of_isstd(&parsed_description);
}
@h Writing to textual Inter syntax.
=
void TypenameInstruction::write(inter_construct *IC, OUTPUT_STREAM, inter_tree_node *P,
inter_error_message **E) {
inter_symbol *typename_s = TypenameInstruction::typename(P);
WRITE("typename %S ", InterSymbol::identifier(typename_s));
inter_symbol *super = TypenameInstruction::super(typename_s);
if (super) {
WRITE("<= %S", InterSymbol::identifier(super));
} else {
WRITE("= ");
InterTypes::write_typename_definition(OUT, typename_s);
}
SymbolAnnotation::write_annotations(OUT, P, typename_s);
}
@h Access functions.
=
inter_symbol *TypenameInstruction::typename(inter_tree_node *P) {
if (P == NULL) return NULL;
if (P->W.instruction[ID_IFLD] != TYPENAME_IST) return NULL;
return InterSymbolsTable::symbol_from_ID_at_node(P, DEFN_TYPENAME_IFLD);
}
inter_symbol *TypenameInstruction::super(inter_symbol *typename_s) {
if (typename_s == NULL) return NULL;
inter_tree_node *D = InterSymbol::definition(typename_s);
if (D == NULL) return NULL;
return InterSymbolsTable::symbol_from_ID_at_node(D, SUPER_TYPENAME_IFLD);
}
inter_node_list *TypenameInstruction::permissions_list(inter_symbol *typename_s) { inter_node_list *TypenameInstruction::permissions_list(inter_symbol *typename_s) {
if (typename_s == NULL) return NULL; if (typename_s == NULL) return NULL;
inter_tree_node *D = InterSymbol::definition(typename_s); inter_tree_node *D = InterSymbol::definition(typename_s);
@ -123,28 +187,53 @@ inter_node_list *TypenameInstruction::permissions_list(inter_symbol *typename_s)
return Inode::ID_to_frame_list(D, D->W.instruction[PERM_LIST_TYPENAME_IFLD]); return Inode::ID_to_frame_list(D, D->W.instruction[PERM_LIST_TYPENAME_IFLD]);
} }
inter_node_list *TypenameInstruction::properties_list(inter_symbol *inst_s) { inter_node_list *TypenameInstruction::properties_list(inter_symbol *typename_s) {
if (inst_s == NULL) return NULL; if (typename_s == NULL) return NULL;
inter_tree_node *D = InterSymbol::definition(inst_s); inter_tree_node *D = InterSymbol::definition(typename_s);
if (D == NULL) return NULL; if (D == NULL) return NULL;
return Inode::ID_to_frame_list(D, D->W.instruction[PLIST_TYPENAME_IFLD]); return Inode::ID_to_frame_list(D, D->W.instruction[PLIST_TYPENAME_IFLD]);
} }
void TypenameInstruction::write(inter_construct *IC, OUTPUT_STREAM, inter_tree_node *P, inter_error_message **E) { @ The definition of the semisimple type:
inter_symbol *symb = InterSymbolsTable::symbol_from_ID_at_node(P, DEFN_TYPENAME_IFLD);
if (symb) { =
WRITE("typename %S ", InterSymbol::identifier(symb)); inter_ti TypenameInstruction::constructor(inter_symbol *typename_s) {
if (P->W.instruction[SUPER_TYPENAME_IFLD]) { if (typename_s == NULL) return UNCHECKED_ITCONC;
inter_symbol *super = InterSymbolsTable::symbol_from_ID_at_node(P, SUPER_TYPENAME_IFLD); inter_tree_node *D = InterSymbol::definition(typename_s);
WRITE("<= %S", InterSymbol::identifier(super)); if (D == NULL) return UNCHECKED_ITCONC;
} else { return D->W.instruction[CONSTRUCTOR_TYPENAME_IFLD];
WRITE("= ");
InterTypes::write_typename_definition(OUT, symb);
}
} else { *E = Inode::error(P, I"cannot write typename", NULL); return; }
SymbolAnnotation::write_annotations(OUT, P, symb);
} }
int TypenameInstruction::arity(inter_symbol *typename_s) {
if (typename_s == NULL) return 0;
inter_tree_node *D = InterSymbol::definition(typename_s);
if (D == NULL) return 0;
return D->W.extent - OPERANDS_TYPENAME_IFLD;
}
inter_type TypenameInstruction::operand_type(inter_symbol *typename_s, int i) {
if (typename_s == NULL) return InterTypes::unchecked();
inter_tree_node *D = InterSymbol::definition(typename_s);
if (D == NULL) return InterTypes::unchecked();
if (i >= D->W.extent - OPERANDS_TYPENAME_IFLD) return InterTypes::unchecked();
inter_ti TID = D->W.instruction[OPERANDS_TYPENAME_IFLD + i];
inter_symbols_table *T = InterPackage::scope_of(D);
return InterTypes::from_TID(T, TID);
}
@ Enumeration counter, relevant only when the typename is enumerated:
=
inter_ti TypenameInstruction::next_enumerated_value(inter_symbol *typename_s) {
if (typename_s == NULL) return 0;
inter_tree_node *D = InterSymbol::definition(typename_s);
if (D == NULL) return 0;
return ++(D->W.instruction[ENUM_RANGE_TYPENAME_IFLD]);
}
@ For an enumerated typename, if a new instance is created, this is called:
=
void TypenameInstruction::new_instance(inter_symbol *typename_s, inter_symbol *inst_name) { void TypenameInstruction::new_instance(inter_symbol *typename_s, inter_symbol *inst_name) {
if (typename_s == NULL) return; if (typename_s == NULL) return;
inter_tree_node *D = InterSymbol::definition(typename_s); inter_tree_node *D = InterSymbol::definition(typename_s);
@ -161,44 +250,9 @@ int TypenameInstruction::instance_count(inter_symbol *typename_s) {
return (int) D->W.instruction[NO_INSTANCES_TYPENAME_IFLD]; return (int) D->W.instruction[NO_INSTANCES_TYPENAME_IFLD];
} }
int TypenameInstruction::arity(inter_symbol *typename_s) { @h Two tests.
if (typename_s == NULL) return 0;
inter_tree_node *D = InterSymbol::definition(typename_s);
if (D == NULL) return 0;
return D->W.extent - MIN_EXTENT_TYPENAME_IFR;
}
inter_type TypenameInstruction::operand_type(inter_symbol *typename_s, int i) {
if (typename_s == NULL) return InterTypes::unchecked();
inter_tree_node *D = InterSymbol::definition(typename_s);
if (D == NULL) return InterTypes::unchecked();
if (i >= D->W.extent - MIN_EXTENT_TYPENAME_IFR) return InterTypes::unchecked();
inter_ti TID = D->W.instruction[OPERANDS_TYPENAME_IFLD + i];
inter_symbols_table *T = InterPackage::scope_of(D);
return InterTypes::from_TID(T, TID);
}
inter_ti TypenameInstruction::constructor(inter_symbol *typename_s) {
if (typename_s == NULL) return UNCHECKED_ITCONC;
inter_tree_node *D = InterSymbol::definition(typename_s);
if (D == NULL) return UNCHECKED_ITCONC;
return D->W.instruction[CONSTRUCTOR_TYPENAME_IFLD];
}
inter_ti TypenameInstruction::next_enumerated_value(inter_symbol *typename_s) {
if (typename_s == NULL) return 0;
inter_tree_node *D = InterSymbol::definition(typename_s);
if (D == NULL) return 0;
return ++(D->W.instruction[ENUM_RANGE_TYPENAME_IFLD]);
}
inter_symbol *TypenameInstruction::super(inter_symbol *typename_s) {
if (typename_s == NULL) return NULL;
inter_tree_node *D = InterSymbol::definition(typename_s);
if (D == NULL) return NULL;
return InterSymbolsTable::symbol_from_ID_at_node(D, SUPER_TYPENAME_IFLD);
}
=
int TypenameInstruction::is(inter_symbol *typename_s) { int TypenameInstruction::is(inter_symbol *typename_s) {
if (typename_s == NULL) return FALSE; if (typename_s == NULL) return FALSE;
inter_tree_node *D = InterSymbol::definition(typename_s); inter_tree_node *D = InterSymbol::definition(typename_s);
@ -210,7 +264,8 @@ int TypenameInstruction::is(inter_symbol *typename_s) {
int TypenameInstruction::is_a(inter_symbol *typename1_s, inter_symbol *typename2_s) { int TypenameInstruction::is_a(inter_symbol *typename1_s, inter_symbol *typename2_s) {
inter_type type1 = InterTypes::from_type_name(typename1_s); inter_type type1 = InterTypes::from_type_name(typename1_s);
inter_type type2 = InterTypes::from_type_name(typename2_s); inter_type type2 = InterTypes::from_type_name(typename2_s);
if ((InterTypes::is_unchecked(type1)) || (InterTypes::is_unchecked(type2))) return TRUE; if ((InterTypes::is_unchecked(type1)) || (InterTypes::is_unchecked(type2)))
return TRUE;
while (typename1_s) { while (typename1_s) {
if (typename1_s == typename2_s) return TRUE; if (typename1_s == typename2_s) return TRUE;
typename1_s = TypenameInstruction::super(typename1_s); typename1_s = TypenameInstruction::super(typename1_s);

View file

@ -14,6 +14,7 @@ void VariableInstruction::define_construct(void) {
InterInstruction::permit(IC, INSIDE_PLAIN_PACKAGE_ICUP); InterInstruction::permit(IC, INSIDE_PLAIN_PACKAGE_ICUP);
InterInstruction::permit(IC, CAN_HAVE_ANNOTATIONS_ICUP); InterInstruction::permit(IC, CAN_HAVE_ANNOTATIONS_ICUP);
METHOD_ADD(IC, CONSTRUCT_READ_MTID, VariableInstruction::read); METHOD_ADD(IC, CONSTRUCT_READ_MTID, VariableInstruction::read);
METHOD_ADD(IC, CONSTRUCT_TRANSPOSE_MTID, VariableInstruction::transpose);
METHOD_ADD(IC, CONSTRUCT_VERIFY_MTID, VariableInstruction::verify); METHOD_ADD(IC, CONSTRUCT_VERIFY_MTID, VariableInstruction::verify);
METHOD_ADD(IC, CONSTRUCT_WRITE_MTID, VariableInstruction::write); METHOD_ADD(IC, CONSTRUCT_WRITE_MTID, VariableInstruction::write);
} }
@ -31,7 +32,7 @@ compulsory words |ID_IFLD| and |LEVEL_IFLD|, followed by:
inter_error_message *VariableInstruction::new(inter_bookmark *IBM, inter_symbol *var_s, inter_error_message *VariableInstruction::new(inter_bookmark *IBM, inter_symbol *var_s,
inter_type var_type, inter_pair val, inter_ti level, inter_error_location *eloc) { inter_type var_type, inter_pair val, inter_ti level, inter_error_location *eloc) {
inter_tree_node *P = Inode::new_with_4_data_fields(IBM, VARIABLE_IST, inter_tree_node *P = Inode::new_with_4_data_fields(IBM, VARIABLE_IST,
/* DEFN_VAR_IFLD: */ InterSymbolsTable::id_from_symbol_at_bookmark(IBM, var_s), /* DEFN_VAR_IFLD: */ InterSymbolsTable::id_at_bookmark(IBM, var_s),
/* TYPE_VAR_IFLD: */ InterTypes::to_TID_at(IBM, var_type), /* TYPE_VAR_IFLD: */ InterTypes::to_TID_at(IBM, var_type),
/* VAL1_VAR_IFLD: */ InterValuePairs::to_word1(val), /* VAL1_VAR_IFLD: */ InterValuePairs::to_word1(val),
/* VAL2_VAR_IFLD: */ InterValuePairs::to_word2(val), /* VAL2_VAR_IFLD: */ InterValuePairs::to_word2(val),
@ -42,6 +43,12 @@ inter_error_message *VariableInstruction::new(inter_bookmark *IBM, inter_symbol
return NULL; return NULL;
} }
void VariableInstruction::transpose(inter_construct *IC, inter_tree_node *P,
inter_ti *grid, inter_ti grid_extent, inter_error_message **E) {
InterValuePairs::set(P, VAL1_PVAL_IFLD,
InterValuePairs::transpose(InterValuePairs::get(P, VAL1_PVAL_IFLD), grid, grid_extent, E));
}
@ Verification consists only of sanity checks. @ Verification consists only of sanity checks.
= =

View file

@ -1,6 +1,6 @@
[AssemblyInstruction::] The Lab Construct. [AssemblyInstruction::] The Assembly Construct.
Defining the Lab construct. Defining the assembly construct.
@ @

View file

@ -41,7 +41,7 @@ void CastInstruction::read(inter_construct *IC, inter_bookmark *IBM, inter_line_
} }
inter_error_message *CastInstruction::new(inter_bookmark *IBM, inter_symbol *from_kind, inter_symbol *to_kind, inter_ti level, inter_error_location *eloc) { inter_error_message *CastInstruction::new(inter_bookmark *IBM, inter_symbol *from_kind, inter_symbol *to_kind, inter_ti level, inter_error_location *eloc) {
inter_tree_node *P = Inode::new_with_3_data_fields(IBM, CAST_IST, 0, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, to_kind), InterSymbolsTable::id_from_symbol_at_bookmark(IBM, from_kind), eloc, (inter_ti) level); inter_tree_node *P = Inode::new_with_3_data_fields(IBM, CAST_IST, 0, InterSymbolsTable::id_at_bookmark(IBM, to_kind), InterSymbolsTable::id_at_bookmark(IBM, from_kind), eloc, (inter_ti) level);
inter_error_message *E = VerifyingInter::instruction(InterBookmark::package(IBM), P); if (E) return E; inter_error_message *E = VerifyingInter::instruction(InterBookmark::package(IBM), P); if (E) return E;
NodePlacement::move_to_moving_bookmark(P, IBM); NodePlacement::move_to_moving_bookmark(P, IBM);
return NULL; return NULL;

View file

@ -76,7 +76,7 @@ inter_error_message *InvInstruction::new_primitive(inter_bookmark *IBM, inter_sy
} }
inter_error_message *InvInstruction::new_call(inter_bookmark *IBM, inter_symbol *invoked_name, inter_ti level, inter_error_location *eloc) { inter_error_message *InvInstruction::new_call(inter_bookmark *IBM, inter_symbol *invoked_name, inter_ti level, inter_error_location *eloc) {
inter_tree_node *P = Inode::new_with_3_data_fields(IBM, INV_IST, 0, INVOKED_ROUTINE, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, invoked_name), eloc, (inter_ti) level); inter_tree_node *P = Inode::new_with_3_data_fields(IBM, INV_IST, 0, INVOKED_ROUTINE, InterSymbolsTable::id_at_bookmark(IBM, invoked_name), eloc, (inter_ti) level);
inter_error_message *E = VerifyingInter::instruction(InterBookmark::package(IBM), P); inter_error_message *E = VerifyingInter::instruction(InterBookmark::package(IBM), P);
if (E) return E; if (E) return E;
NodePlacement::move_to_moving_bookmark(P, IBM); NodePlacement::move_to_moving_bookmark(P, IBM);

View file

@ -43,7 +43,7 @@ void LabInstruction::read(inter_construct *IC, inter_bookmark *IBM, inter_line_p
} }
inter_error_message *LabInstruction::new(inter_bookmark *IBM, inter_symbol *label, inter_ti level, inter_error_location *eloc) { inter_error_message *LabInstruction::new(inter_bookmark *IBM, inter_symbol *label, inter_ti level, inter_error_location *eloc) {
inter_tree_node *P = Inode::new_with_2_data_fields(IBM, LAB_IST, 0, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, label), eloc, (inter_ti) level); inter_tree_node *P = Inode::new_with_2_data_fields(IBM, LAB_IST, 0, InterSymbolsTable::id_at_bookmark(IBM, label), eloc, (inter_ti) level);
inter_error_message *E = VerifyingInter::instruction(InterBookmark::package(IBM), P); if (E) return E; inter_error_message *E = VerifyingInter::instruction(InterBookmark::package(IBM), P); if (E) return E;
NodePlacement::move_to_moving_bookmark(P, IBM); NodePlacement::move_to_moving_bookmark(P, IBM);
return NULL; return NULL;

View file

@ -46,7 +46,7 @@ void LabelInstruction::read(inter_construct *IC, inter_bookmark *IBM, inter_line
} }
inter_error_message *LabelInstruction::new(inter_bookmark *IBM, inter_symbol *lab_name, inter_ti level, inter_error_location *eloc) { inter_error_message *LabelInstruction::new(inter_bookmark *IBM, inter_symbol *lab_name, inter_ti level, inter_error_location *eloc) {
inter_tree_node *P = Inode::new_with_2_data_fields(IBM, LABEL_IST, 0, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, lab_name), eloc, level); inter_tree_node *P = Inode::new_with_2_data_fields(IBM, LABEL_IST, 0, InterSymbolsTable::id_at_bookmark(IBM, lab_name), eloc, level);
inter_error_message *E = VerifyingInter::instruction(InterBookmark::package(IBM), P); if (E) return E; inter_error_message *E = VerifyingInter::instruction(InterBookmark::package(IBM), P); if (E) return E;
NodePlacement::move_to_moving_bookmark(P, IBM); NodePlacement::move_to_moving_bookmark(P, IBM);
return NULL; return NULL;

View file

@ -54,7 +54,7 @@ void LocalInstruction::read(inter_construct *IC, inter_bookmark *IBM, inter_line
inter_error_message *LocalInstruction::new(inter_bookmark *IBM, inter_symbol *var_name, inter_error_message *LocalInstruction::new(inter_bookmark *IBM, inter_symbol *var_name,
inter_type var_type, inter_ti level, inter_error_location *eloc) { inter_type var_type, inter_ti level, inter_error_location *eloc) {
inter_tree_node *P = Inode::new_with_3_data_fields(IBM, LOCAL_IST, 0, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, var_name), InterTypes::to_TID_at(IBM, var_type), eloc, level); inter_tree_node *P = Inode::new_with_3_data_fields(IBM, LOCAL_IST, 0, InterSymbolsTable::id_at_bookmark(IBM, var_name), InterTypes::to_TID_at(IBM, var_type), eloc, level);
inter_error_message *E = VerifyingInter::instruction(InterBookmark::package(IBM), P); if (E) return E; inter_error_message *E = VerifyingInter::instruction(InterBookmark::package(IBM), P); if (E) return E;
NodePlacement::move_to_moving_bookmark(P, IBM); NodePlacement::move_to_moving_bookmark(P, IBM);
return NULL; return NULL;

View file

@ -138,7 +138,7 @@ void CodeGen::gather_up(inter_tree *I, inter_tree_node *P, void *state) {
break; break;
} }
case TYPENAME_IST: { case TYPENAME_IST: {
inter_symbol *typename = InterSymbolsTable::symbol_from_ID_at_node(P, DEFN_TYPENAME_IFLD); inter_symbol *typename = TypenameInstruction::typename(P);
ADD_TO_LINKED_LIST(typename, inter_symbol, gen->kinds); ADD_TO_LINKED_LIST(typename, inter_symbol, gen->kinds);
break; break;
} }

View file

@ -67,41 +67,38 @@ base data type matches this".
unchecked_kind_symbol = unchecked_kind_symbol =
InterSymbolsTable::create_with_unique_name( InterSymbolsTable::create_with_unique_name(
InterBookmark::scope(&in_generic_kinds), I"K_unchecked"); InterBookmark::scope(&in_generic_kinds), I"K_unchecked");
TypenameInstruction::new(&in_generic_kinds, TypenameInstruction::new(&in_generic_kinds, unchecked_kind_symbol,
InterSymbolsTable::id_from_symbol(I, generic_kinds_p, unchecked_kind_symbol), UNCHECKED_ITCONC, NULL, 0, NULL,
UNCHECKED_ITCONC, 0, 0, NULL,
(inter_ti) InterBookmark::baseline(&in_generic_kinds) + 1, NULL); (inter_ti) InterBookmark::baseline(&in_generic_kinds) + 1, NULL);
@ And this expresses the idea of "any sort of function": @ And this expresses the idea of "any sort of function":
@<Create the unchecked function kind@> = @<Create the unchecked function kind@> =
inter_ti operands[2]; inter_ti operands[2];
operands[0] = InterSymbolsTable::id_from_symbol_at_bookmark( operands[0] = InterSymbolsTable::id_at_bookmark(
&in_generic_kinds, unchecked_kind_symbol); &in_generic_kinds, unchecked_kind_symbol);
operands[1] = InterSymbolsTable::id_from_symbol_at_bookmark( operands[1] = InterSymbolsTable::id_at_bookmark(
&in_generic_kinds, unchecked_kind_symbol); &in_generic_kinds, unchecked_kind_symbol);
inter_symbol *unchecked_function_symbol = inter_symbol *unchecked_function_symbol =
InterSymbolsTable::create_with_unique_name( InterSymbolsTable::create_with_unique_name(
InterBookmark::scope(&in_generic_kinds), I"K_unchecked_function"); InterBookmark::scope(&in_generic_kinds), I"K_unchecked_function");
TypenameInstruction::new(&in_generic_kinds, TypenameInstruction::new(&in_generic_kinds, unchecked_function_symbol,
InterSymbolsTable::id_from_symbol(I, generic_kinds_p, unchecked_function_symbol), FUNCTION_ITCONC, NULL, 2, operands,
FUNCTION_ITCONC, 0, 2, operands,
(inter_ti) InterBookmark::baseline(&in_generic_kinds) + 1, NULL); (inter_ti) InterBookmark::baseline(&in_generic_kinds) + 1, NULL);
@ And "any sort of list": @ And "any sort of list":
@<Create the unchecked list kind@> = @<Create the unchecked list kind@> =
inter_ti operands[2]; inter_ti operands[2];
operands[0] = InterSymbolsTable::id_from_symbol_at_bookmark( operands[0] = InterSymbolsTable::id_at_bookmark(
&in_generic_kinds, unchecked_kind_symbol); &in_generic_kinds, unchecked_kind_symbol);
operands[1] = InterSymbolsTable::id_from_symbol_at_bookmark( operands[1] = InterSymbolsTable::id_at_bookmark(
&in_generic_kinds, unchecked_kind_symbol); &in_generic_kinds, unchecked_kind_symbol);
inter_symbol *unchecked_list_symbol = inter_symbol *unchecked_list_symbol =
InterSymbolsTable::create_with_unique_name( InterSymbolsTable::create_with_unique_name(
InterBookmark::scope(&in_generic_kinds), I"K_unchecked_list"); InterBookmark::scope(&in_generic_kinds), I"K_unchecked_list");
TypenameInstruction::new(&in_generic_kinds, TypenameInstruction::new(&in_generic_kinds, unchecked_list_symbol,
InterSymbolsTable::id_from_symbol(I, generic_kinds_p, unchecked_list_symbol), LIST_ITCONC, NULL, 1, operands,
LIST_ITCONC, 0, 1, operands,
(inter_ti) InterBookmark::baseline(&in_generic_kinds) + 1, NULL); (inter_ti) InterBookmark::baseline(&in_generic_kinds) + 1, NULL);
@ It's safe to say that we are likely to need these, too. (Note that they do not @ It's safe to say that we are likely to need these, too. (Note that they do not
@ -112,8 +109,7 @@ end up being basically the same thing.)
inter_symbol *integer_kind_symbol = inter_symbol *integer_kind_symbol =
InterSymbolsTable::create_with_unique_name( InterSymbolsTable::create_with_unique_name(
InterBookmark::scope(&in_generic_kinds), I"K_int32"); InterBookmark::scope(&in_generic_kinds), I"K_int32");
TypenameInstruction::new(&in_generic_kinds, TypenameInstruction::new(&in_generic_kinds, integer_kind_symbol,
InterSymbolsTable::id_from_symbol(I, generic_kinds_p, integer_kind_symbol),
INT32_ITCONC, 0, 0, NULL, INT32_ITCONC, 0, 0, NULL,
(inter_ti) InterBookmark::baseline(&in_generic_kinds) + 1, NULL); (inter_ti) InterBookmark::baseline(&in_generic_kinds) + 1, NULL);
@ -121,16 +117,14 @@ end up being basically the same thing.)
inter_symbol *boolean_kind_symbol = inter_symbol *boolean_kind_symbol =
InterSymbolsTable::create_with_unique_name( InterSymbolsTable::create_with_unique_name(
InterBookmark::scope(&in_generic_kinds), I"K_int2"); InterBookmark::scope(&in_generic_kinds), I"K_int2");
TypenameInstruction::new(&in_generic_kinds, TypenameInstruction::new(&in_generic_kinds, boolean_kind_symbol,
InterSymbolsTable::id_from_symbol(I, generic_kinds_p, boolean_kind_symbol), INT2_ITCONC, NULL, 0, NULL,
INT2_ITCONC, 0, 0, NULL,
(inter_ti) InterBookmark::baseline(&in_generic_kinds) + 1, NULL); (inter_ti) InterBookmark::baseline(&in_generic_kinds) + 1, NULL);
@<Create the string kind@> = @<Create the string kind@> =
inter_symbol *string_kind_symbol = inter_symbol *string_kind_symbol =
InterSymbolsTable::create_with_unique_name( InterSymbolsTable::create_with_unique_name(
InterBookmark::scope(&in_generic_kinds), I"K_string"); InterBookmark::scope(&in_generic_kinds), I"K_string");
TypenameInstruction::new(&in_generic_kinds, TypenameInstruction::new(&in_generic_kinds, string_kind_symbol,
InterSymbolsTable::id_from_symbol(I, generic_kinds_p, string_kind_symbol), TEXT_ITCONC, NULL, 0, NULL,
TEXT_ITCONC, 0, 0, NULL,
(inter_ti) InterBookmark::baseline(&in_generic_kinds) + 1, NULL); (inter_ti) InterBookmark::baseline(&in_generic_kinds) + 1, NULL);

View file

@ -1044,7 +1044,7 @@ inter_symbol *CompileSplatsStage::compute_binary_op(inter_ti op, pipeline_step *
inter_bookmark *IBM, inter_symbol *i1, inter_symbol *i2) { inter_bookmark *IBM, inter_symbol *i1, inter_symbol *i2) {
inter_package *pack = InterBookmark::package(IBM); inter_package *pack = InterBookmark::package(IBM);
inter_symbol *result_s = CompileSplatsStage::new_ccv_symbol(pack); inter_symbol *result_s = CompileSplatsStage::new_ccv_symbol(pack);
inter_ti MID = InterSymbolsTable::id_from_symbol_at_bookmark(IBM, result_s); inter_ti MID = InterSymbolsTable::id_at_bookmark(IBM, result_s);
inter_ti KID = InterTypes::to_TID(InterBookmark::scope(IBM), InterTypes::unchecked()); inter_ti KID = InterTypes::to_TID(InterBookmark::scope(IBM), InterTypes::unchecked());
inter_ti B = (inter_ti) InterBookmark::baseline(IBM) + 1; inter_ti B = (inter_ti) InterBookmark::baseline(IBM) + 1;
inter_tree_node *pair_list = inter_tree_node *pair_list =

View file

@ -93,7 +93,7 @@ void Synoptic::begin_array(inter_tree *I, pipeline_step *step, inter_name *iname
inter_ti TID = InterTypes::to_TID(InterBookmark::scope(Packaging::at(I)), inter_ti TID = InterTypes::to_TID(InterBookmark::scope(Packaging::at(I)),
InterTypes::from_constructor_code(LIST_ITCONC)); InterTypes::from_constructor_code(LIST_ITCONC));
synoptic_array_node = Inode::new_with_3_data_fields(Packaging::at(I), CONSTANT_IST, synoptic_array_node = Inode::new_with_3_data_fields(Packaging::at(I), CONSTANT_IST,
InterSymbolsTable::id_from_symbol_at_bookmark(Packaging::at(I), con_s), InterSymbolsTable::id_at_bookmark(Packaging::at(I), con_s),
TID, CONST_LIST_FORMAT_COLLECTION, NULL, TID, CONST_LIST_FORMAT_COLLECTION, NULL,
(inter_ti) InterBookmark::baseline(Packaging::at(I)) + 1); (inter_ti) InterBookmark::baseline(Packaging::at(I)) + 1);
} }