mirror of
https://github.com/ganelson/inform.git
synced 2024-06-17 07:40:47 +03:00
Refactored Inter types yet further
This commit is contained in:
parent
c1004bacc2
commit
37d1759459
|
@ -1,6 +1,6 @@
|
|||
# Inform 7
|
||||
|
||||
v10.1.0-alpha.1+6U37 'Krypton' (20 February 2022)
|
||||
v10.1.0-alpha.1+6U38 'Krypton' (21 February 2022)
|
||||
|
||||
## About Inform 7
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Prerelease: alpha.1
|
||||
Build Date: 20 February 2022
|
||||
Build Number: 6U37
|
||||
Build Date: 21 February 2022
|
||||
Build Number: 6U38
|
||||
|
|
|
@ -800,7 +800,7 @@ parsing the schema.)
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">constant_number</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">v1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">; </span><span class="identifier-syntax">v2</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">constant_number</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">Inter::Types::read_int_in_I6_notation</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">material</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v2</span><span class="plain-syntax">) == </span><span class="identifier-syntax">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">InterValuePairs::read_int_in_I6_notation</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">material</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v2</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</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">msg</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">msg</span><span class="plain-syntax">, </span><span class="string-syntax">"malformed literal number '%S'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">material</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-is.html#SP20" class="function-link"><span class="function-syntax">InterSchemas::throw_error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">node</span><span class="plain-syntax">, </span><span class="identifier-syntax">msg</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -432,7 +432,7 @@ or the baseline of the current package plus 1, if we're in a package.
|
|||
<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><a href="1-in.html#SP9" class="function-link"><span class="function-syntax">InterNames::to_symbol</span></a><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_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">v1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">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::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterPackage::tree</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">), </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">val_s</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterPackage::tree</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">), </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">val_s</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-prd.html#SP17" class="function-link"><span class="function-syntax">Produce::guard</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Constant::new_numerical</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">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">con_s</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">IBM</span><span class="plain-syntax">, </span><a href="3-prd.html#SP35" class="function-link"><span class="function-syntax">Produce::kind_to_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)),</span>
|
||||
|
@ -591,7 +591,7 @@ by an iname:
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Produce::val_symbol</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">Produce::val_symbol</span></span>:<br/><a href="3-prd.html#SP30">§30</a><br/>Emitting Inter Schemas - <a href="2-eis.html#SP3_1_7_2">§3.1.7.2</a>, <a href="2-eis.html#SP3_1_10_2">§3.1.10.2</a>, <a href="2-eis.html#SP3_1_11_1">§3.1.11.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</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="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax"> = </span><a href="1-pck.html#SP7" class="function-link"><span class="function-syntax">Packaging::at</span></a><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::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterBookmark::tree</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">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterBookmark::tree</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">InterBookmark::package</span><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="identifier-syntax">val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-prd.html#SP32" class="function-link"><span class="function-syntax">Produce::val</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -607,7 +607,7 @@ Inter pair —
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">val_kind</span><span class="plain-syntax"> = </span><a href="3-prd.html#SP35" class="function-link"><span class="function-syntax">Produce::kind_to_symbol</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">val_kind</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 kind for val"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="3-prd.html#SP17" class="function-link"><span class="function-syntax">Produce::guard</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Val::new</span><span class="plain-syntax">(</span><a href="3-prd.html#SP7" class="function-link"><span class="function-syntax">Produce::at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">Inter::Types::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val_kind</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><a href="3-prd.html#SP17" class="function-link"><span class="function-syntax">Produce::guard</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Val::new</span><span class="plain-syntax">(</span><a href="3-prd.html#SP7" class="function-link"><span class="function-syntax">Produce::at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">InterTypes::from_type_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">val_kind</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><a href="3-prd.html#SP8" class="function-link"><span class="function-syntax">Produce::level</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -659,14 +659,14 @@ to a constant, so we only ever need to refer to inames or their symbols:
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Produce::ref_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</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="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax"> = </span><a href="1-pck.html#SP7" class="function-link"><span class="function-syntax">Packaging::at</span></a><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::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterBookmark::tree</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterBookmark::tree</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</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">s</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val2</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_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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K</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="plain-syntax"> </span><span class="identifier-syntax">val_kind</span><span class="plain-syntax"> = </span><a href="3-prd.html#SP35" class="function-link"><span class="function-syntax">Produce::kind_to_symbol</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">val_kind</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 kind for ref"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="3-prd.html#SP17" class="function-link"><span class="function-syntax">Produce::guard</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Ref::new</span><span class="plain-syntax">(</span><a href="3-prd.html#SP7" class="function-link"><span class="function-syntax">Produce::at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">Inter::Types::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val_kind</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><a href="3-prd.html#SP17" class="function-link"><span class="function-syntax">Produce::guard</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Ref::new</span><span class="plain-syntax">(</span><a href="3-prd.html#SP7" class="function-link"><span class="function-syntax">Produce::at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">InterTypes::from_type_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">val_kind</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><a href="3-prd.html#SP8" class="function-link"><span class="function-syntax">Produce::level</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -764,8 +764,8 @@ doesn't add the name tp the current stack frame in <a href="../inform7/index.htm
|
|||
<span class="plain-syntax"> </span><a href="3-prd.html#SP17" class="function-link"><span class="function-syntax">Produce::guard</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Comment::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">locals_at</span><span class="plain-syntax">, </span><a href="3-prd.html#SP18" class="function-link"><span class="function-syntax">Produce::baseline</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">locals_at</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">NULL</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="identifier-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">it</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Types::untyped</span><span 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</span><span class="plain-syntax"> != </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">)) </span><span class="identifier-syntax">it</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Types::from_symbol</span><span class="plain-syntax">(</span><a href="3-prd.html#SP35" class="function-link"><span class="function-syntax">Produce::kind_to_symbol</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_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">it</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterTypes::untyped</span><span 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</span><span class="plain-syntax"> != </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">)) </span><span class="identifier-syntax">it</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterTypes::from_type_name</span><span class="plain-syntax">(</span><a href="3-prd.html#SP35" class="function-link"><span class="function-syntax">Produce::kind_to_symbol</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="3-prd.html#SP17" class="function-link"><span class="function-syntax">Produce::guard</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Local::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">locals_at</span><span class="plain-syntax">, </span><span class="identifier-syntax">local_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">it</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-prd.html#SP18" class="function-link"><span class="function-syntax">Produce::baseline</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">locals_at</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="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">local_s</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -82,7 +82,6 @@ which use this module:
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_symbols_table_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_symbol_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_annotation_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_data_type_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_construct_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_annotation_form_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_error_location_CLASS</span>
|
||||
|
@ -97,7 +96,6 @@ which use this module:
|
|||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_warehouse</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_warehouse_room</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_data_type</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_construct</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_annotation_form</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax">)</span>
|
||||
|
@ -121,7 +119,7 @@ which use this module:
|
|||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bm.html#SP3_6" class="named-paragraph-link"><span class="named-paragraph">Register this module's debugging log writers</span><span class="named-paragraph-number">3.6</span></a></span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="3-ic.html#SP10" class="function-link"><span class="function-syntax">InterConstruct::create_language</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP3" class="function-link"><span class="function-syntax">Inter::Types::create_all</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP4" class="function-link"><span class="function-syntax">InterTypes::initialise_constructors</span></a><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">BytecodeModule::end</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -200,7 +200,7 @@ equal to <span class="extract"><span class="extract-syntax">P</span></span>.
|
|||
</p>
|
||||
|
||||
<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">§7</a><br/>Inter Nodes - <a href="2-in.html#SP5">§5</a><br/>Symbols Tables - <a href="2-st.html#SP17">§17</a><br/>Transmigration - <a href="2-trn.html#SP3_3">§3.3</a>, <a href="2-trn.html#SP4_1_1">§4.1.1</a>, <a href="2-trn.html#SP4_2_1_1">§4.2.1.1</a><br/>Inter Constructs - <a href="3-ic.html#SP4">§4</a><br/>Inter in Text Files - <a href="3-iitf.html#SP3_2">§3.2</a><br/>Inter Data Types - <a href="3-idt.html#SP5">§5</a><br/>The Nop Construct - <a href="4-tnc.html#SP1">§1</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">§1</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Link Construct - <a href="4-tlc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">§2</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">§2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The Property Construct - <a href="4-tpc4.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Label Construct - <a href="5-tlc.html#SP2">§2</a><br/>The Local Construct - <a href="5-tlc2.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">§2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tlc3.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tac.html#SP2">§2</a><br/>The Code Construct - <a href="5-tcc.html#SP2">§2</a><br/>The Evaluation Construct - <a href="5-tec.html#SP2">§2</a><br/>The Reference Construct - <a href="5-trc2.html#SP2">§2</a><br/>The Cast Construct - <a href="5-tcc2.html#SP2">§2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">§2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">§1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">§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">§7</a><br/>Inter Nodes - <a href="2-in.html#SP5">§5</a><br/>Symbols Tables - <a href="2-st.html#SP17">§17</a><br/>Transmigration - <a href="2-trn.html#SP3_3">§3.3</a>, <a href="2-trn.html#SP4_1_1">§4.1.1</a>, <a href="2-trn.html#SP4_2_1_1">§4.2.1.1</a><br/>Inter Constructs - <a href="3-ic.html#SP4">§4</a><br/>Inter in Text Files - <a href="3-iitf.html#SP3_2">§3.2</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP4">§4</a><br/>The Nop Construct - <a href="4-tnc.html#SP1">§1</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">§1</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Link Construct - <a href="4-tlc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">§2</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">§2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The Property Construct - <a href="4-tpc4.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Label Construct - <a href="5-tlc.html#SP2">§2</a><br/>The Local Construct - <a href="5-tlc2.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">§2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tlc3.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tac.html#SP2">§2</a><br/>The Code Construct - <a href="5-tcc.html#SP2">§2</a><br/>The Evaluation Construct - <a href="5-tec.html#SP2">§2</a><br/>The Reference Construct - <a href="5-trc2.html#SP2">§2</a><br/>The Cast Construct - <a href="5-tcc2.html#SP2">§2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">§2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">§1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">§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">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">-></span><span class="element-syntax">R</span><span class="plain-syntax">-></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">-></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>
|
||||
|
@ -215,7 +215,7 @@ equal to <span class="extract"><span class="extract-syntax">P</span></span>.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="function-syntax">InterBookmark::tree</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">InterBookmark::tree</span></span>:<br/>Inter Nodes - <a href="2-in.html#SP5">§5</a><br/>Node Placement - <a href="2-np.html#SP3">§3</a><br/>Symbols Tables - <a href="2-st.html#SP17">§17</a><br/>Inter in Text Files - <a href="3-iitf.html#SP3_3">§3.3</a>, <a href="3-iitf.html#SP6">§6</a><br/>Inter Data Types - <a href="3-idt.html#SP5">§5</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">§1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">§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_tree</span><span class="plain-syntax"> *</span><span class="function-syntax">InterBookmark::tree</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">InterBookmark::tree</span></span>:<br/>Inter Nodes - <a href="2-in.html#SP5">§5</a><br/>Node Placement - <a href="2-np.html#SP3">§3</a><br/>Symbols Tables - <a href="2-st.html#SP17">§17</a><br/>Inter in Text Files - <a href="3-iitf.html#SP3_3">§3.3</a>, <a href="3-iitf.html#SP6">§6</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP4">§4</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">§1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">§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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">IBM</span><span class="plain-syntax">-></span><span class="element-syntax">R</span><span class="plain-syntax">-></span><span class="element-syntax">tree</span><span class="plain-syntax">;</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">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">§5</a><br/>Inter Data Types - <a href="3-idt.html#SP5">§5</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">§2</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">§2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The Property Construct - <a href="4-tpc4.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Local Construct - <a href="5-tlc2.html#SP2">§2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">§2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">§1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">§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">§5</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP4">§4</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">§2</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">§2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The Property Construct - <a href="4-tpc4.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Local Construct - <a href="5-tlc2.html#SP2">§2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">§2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">§1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">§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">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#SP9" 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>
|
||||
|
|
|
@ -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">inter_tree_node</span><span class="plain-syntax">;</span>
|
||||
</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/idt, 3/mtd, 4/tcc, 4/tpc, 4/tlc, 4/tac, 4/tpc2, 4/tpc3, 4/tkc, 4/tdc, 4/tvc, 4/tcc2, 4/tic, 4/tpc4, 4/tpc5, 4/tpc6, 4/tpc7, 5/tlc, 5/tlc2, 5/tic, 5/trc, 5/tvc, 5/tlc3, 5/tac, 5/tcc, 5/tec, 5/trc2, 5/tcc2, 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/tcc, 4/tpc, 4/tlc, 4/tac, 4/tpc2, 4/tpc3, 4/tkc, 4/tdc, 4/tvc, 4/tcc2, 4/tic, 4/tpc4, 4/tpc5, 4/tpc6, 4/tpc7, 5/tlc, 5/tlc2, 5/tic, 5/trc, 5/tvc, 5/tlc3, 5/tac, 5/tcc, 5/tec, 5/trc2, 5/tcc2, 5/tsc and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>Do not call this directly in order to create a node.
|
||||
</p>
|
||||
|
||||
|
@ -317,7 +317,7 @@ call those creator functions, not these.
|
|||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. The package and tree of a node. </b></p>
|
||||
|
||||
<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">Inode::get_package</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">Inode::get_package</span></span>:<br/>Packages - <a href="2-pck.html#SP11">§11</a><br/>Inter Constructs - <a href="3-ic.html#SP5">§5</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_1_5_1_1">§9.1.5.1.1</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="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="function-syntax">Inode::get_package</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">Inode::get_package</span></span>:<br/>Packages - <a href="2-pck.html#SP11">§11</a><br/>Inter Constructs - <a href="3-ic.html#SP5">§5</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_1_5_1_1">§9.1.5.1.1</a><br/>Inter Data Types - <a href="3-idt.html#SP14">§14</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">F</span><span class="plain-syntax">-></span><span class="element-syntax">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">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -327,7 +327,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">NULL</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">Inode::globals</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">Inode::globals</span></span>:<br/>Packages - <a href="2-pck.html#SP11">§11</a><br/>Symbols Tables - <a href="2-st.html#SP13">§13</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Data Types - <a href="3-idt.html#SP3">§3</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§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="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="function-syntax">Inode::globals</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">Inode::globals</span></span>:<br/>Packages - <a href="2-pck.html#SP11">§11</a><br/>Symbols Tables - <a href="2-st.html#SP13">§13</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP5">§5</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax">) </span><span class="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-in.html#SP6" class="function-link"><span class="function-syntax">Inode::tree</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -389,7 +389,7 @@ actually encoded in the word, see <a href="2-tw.html" class="internal">The Wareh
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="function-syntax">Inode::get_error_location</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">Inode::get_error_location</span></span>:<br/><a href="2-in.html#SP15">§15</a><br/>Inter Constructs - <a href="3-ic.html#SP5">§5</a><br/>Inter Data Types - <a href="3-idt.html#SP3">§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">F</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="function-syntax">Inode::get_error_location</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">Inode::get_error_location</span></span>:<br/><a href="2-in.html#SP15">§15</a><br/>Inter Constructs - <a href="3-ic.html#SP5">§5</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP5">§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">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">F</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="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="2-in.html#SP11" class="function-link"><span class="function-syntax">Inode::get_preframe</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="constant-syntax">PREFRAME_ORIGIN</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#SP14" class="function-link"><span class="function-syntax">InterTree::origin_word_to_eloc</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">F</span><span class="plain-syntax">), </span><span class="identifier-syntax">L</span><span class="plain-syntax">);</span>
|
||||
|
@ -470,7 +470,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#SP8" class="function-link"><span class="function-syntax">InterWarehouse::get_symbols_table</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="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">Inode::ID_to_text</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">Inode::ID_to_text</span></span>:<br/>Annotations - <a href="2-ann.html#SP14">§14</a><br/>Inter Data Types - <a href="3-idt.html#SP4">§4</a><br/>Metadata - <a href="3-mtd.html#SP1">§1</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">§1</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Link Construct - <a href="4-tlc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">§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">ID</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">Inode::ID_to_text</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">Inode::ID_to_text</span></span>:<br/>Annotations - <a href="2-ann.html#SP14">§14</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP2">§2</a><br/>Metadata - <a href="3-mtd.html#SP1">§1</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">§1</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Link Construct - <a href="4-tlc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">§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">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#SP7" class="function-link"><span class="function-syntax">InterWarehouse::get_text</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>
|
||||
|
||||
|
@ -488,7 +488,7 @@ to identify it as occurring at a particular node. We can get one thus:
|
|||
</p>
|
||||
|
||||
<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#SP9">§9</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Data Types - <a href="3-idt.html#SP3">§3</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Link Construct - <a href="4-tlc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">§2</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">§2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The Property Construct - <a href="4-tpc4.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Label Construct - <a href="5-tlc.html#SP2">§2</a><br/>The Local Construct - <a href="5-tlc2.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">§2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tlc3.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tac.html#SP2">§2</a><br/>The Code Construct - <a href="5-tcc.html#SP2">§2</a><br/>The Evaluation Construct - <a href="5-tec.html#SP2">§2</a><br/>The Reference Construct - <a href="5-trc2.html#SP2">§2</a><br/>The Cast Construct - <a href="5-tcc2.html#SP2">§2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">§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#SP9">§9</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP5">§5</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Link Construct - <a href="4-tlc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">§2</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">§2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The Property Construct - <a href="4-tpc4.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Label Construct - <a href="5-tlc.html#SP2">§2</a><br/>The Local Construct - <a href="5-tlc2.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">§2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tlc3.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tac.html#SP2">§2</a><br/>The Code Construct - <a href="5-tcc.html#SP2">§2</a><br/>The Evaluation Construct - <a href="5-tec.html#SP2">§2</a><br/>The Reference Construct - <a href="5-trc2.html#SP2">§2</a><br/>The Cast Construct - <a href="5-tcc2.html#SP2">§2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">§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_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax"> = </span><a href="2-in.html#SP10" 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>
|
||||
|
|
|
@ -152,11 +152,11 @@ which is by definition the symbols table for the root package.
|
|||
<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_symbols_table</span><span class="plain-syntax"> *</span><span class="function-syntax">InterTree::global_scope</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">InterTree::global_scope</span></span>:<br/>Inter Nodes - <a href="2-in.html#SP6">§6</a><br/>Bookmarks - <a href="2-bkm.html#SP7">§7</a><br/>Symbols Tables - <a href="2-st.html#SP15">§15</a>, <a href="2-st.html#SP16">§16</a>, <a href="2-st.html#SP16_1">§16.1</a>, <a href="2-st.html#SP19">§19</a><br/>Transmigration - <a href="2-trn.html#SP4_1">§4.1</a>, <a href="2-trn.html#SP4_1_1">§4.1.1</a>, <a href="2-trn.html#SP4_2_1">§4.2.1</a>, <a href="2-trn.html#SP4_2_1_1">§4.2.1.1</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_1_3_1">§9.1.3.1</a><br/>Inter in Text Files - <a href="3-iitf.html#SP6">§6</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a></span></button><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>
|
||||
<span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="function-syntax">InterTree::global_scope</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">InterTree::global_scope</span></span>:<br/>Inter Nodes - <a href="2-in.html#SP6">§6</a><br/>Bookmarks - <a href="2-bkm.html#SP7">§7</a><br/>Symbols Tables - <a href="2-st.html#SP15">§15</a>, <a href="2-st.html#SP16">§16</a>, <a href="2-st.html#SP19">§19</a><br/>Transmigration - <a href="2-trn.html#SP4_1">§4.1</a>, <a href="2-trn.html#SP4_1_1">§4.1.1</a>, <a href="2-trn.html#SP4_2_1">§4.2.1</a>, <a href="2-trn.html#SP4_2_1_1">§4.2.1.1</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_1_3_1">§9.1.3.1</a><br/>Inter in Text Files - <a href="3-iitf.html#SP6">§6</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a></span></button><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>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-pck.html#SP9" class="function-link"><span class="function-syntax">InterPackage::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="element-syntax">root_package</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="function-syntax">InterTree::warehouse</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">InterTree::warehouse</span></span>:<br/>Inter Nodes - <a href="2-in.html#SP5">§5</a><br/>Bookmarks - <a href="2-bkm.html#SP7">§7</a><br/>Annotations - <a href="2-ann.html#SP6">§6</a>, <a href="2-ann.html#SP7">§7</a>, <a href="2-ann.html#SP15">§15</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9">§9</a><br/>Inter Data Types - <a href="3-idt.html#SP5">§5</a></span></button><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>
|
||||
<span class="reserved-syntax">inter_warehouse</span><span class="plain-syntax"> *</span><span class="function-syntax">InterTree::warehouse</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">InterTree::warehouse</span></span>:<br/>Inter Nodes - <a href="2-in.html#SP5">§5</a><br/>Bookmarks - <a href="2-bkm.html#SP7">§7</a><br/>Annotations - <a href="2-ann.html#SP6">§6</a>, <a href="2-ann.html#SP7">§7</a>, <a href="2-ann.html#SP15">§15</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9">§9</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP4">§4</a></span></button><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>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="element-syntax">housed</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -230,7 +230,7 @@ extracted from the bytecode of its <span class="extract"><span class="extract-sy
|
|||
</p>
|
||||
|
||||
<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('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">InterPackage::scope</span></span>:<br/><a href="2-pck.html#SP10">§10</a><br/>Inter Trees - <a href="2-it.html#SP3">§3</a><br/>Bookmarks - <a href="2-bkm.html#SP7">§7</a><br/>Symbols Tables - <a href="2-st.html#SP13">§13</a>, <a href="2-st.html#SP15">§15</a>, <a href="2-st.html#SP16">§16</a>, <a href="2-st.html#SP19">§19</a><br/>The Wiring - <a href="2-tw2.html#SP11">§11</a>, <a href="2-tw2.html#SP12">§12</a>, <a href="2-tw2.html#SP14">§14</a>, <a href="2-tw2.html#SP16">§16</a>, <a href="2-tw2.html#SP17">§17</a><br/>Transmigration - <a href="2-trn.html#SP3_6">§3.6</a>, <a href="2-trn.html#SP4_2_2">§4.2.2</a>, <a href="2-trn.html#SP5">§5</a><br/>Inter Constructs - <a href="3-ic.html#SP5">§5</a><br/>Inter in Text Files - <a href="3-iitf.html#SP7">§7</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Data Types - <a href="3-idt.html#SP3">§3</a><br/>Metadata - <a href="3-mtd.html#SP1">§1</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Label Construct - <a href="5-tlc.html#SP2">§2</a><br/>The Local Construct - <a href="5-tlc2.html#SP2">§2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">§2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tlc3.html#SP2">§2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">§1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">§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('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">InterPackage::scope</span></span>:<br/><a href="2-pck.html#SP10">§10</a><br/>Inter Trees - <a href="2-it.html#SP3">§3</a><br/>Bookmarks - <a href="2-bkm.html#SP7">§7</a><br/>Symbols Tables - <a href="2-st.html#SP13">§13</a>, <a href="2-st.html#SP15">§15</a>, <a href="2-st.html#SP16">§16</a>, <a href="2-st.html#SP19">§19</a><br/>The Wiring - <a href="2-tw2.html#SP11">§11</a>, <a href="2-tw2.html#SP12">§12</a>, <a href="2-tw2.html#SP14">§14</a>, <a href="2-tw2.html#SP16">§16</a>, <a href="2-tw2.html#SP17">§17</a><br/>Transmigration - <a href="2-trn.html#SP3_6">§3.6</a>, <a href="2-trn.html#SP4_2_2">§4.2.2</a>, <a href="2-trn.html#SP5">§5</a><br/>Inter Constructs - <a href="3-ic.html#SP5">§5</a><br/>Inter in Text Files - <a href="3-iitf.html#SP7">§7</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP5">§5</a><br/>Inter Data Types - <a href="3-idt.html#SP14">§14</a><br/>Metadata - <a href="3-mtd.html#SP1">§1</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Label Construct - <a href="5-tlc.html#SP2">§2</a><br/>The Local Construct - <a href="5-tlc2.html#SP2">§2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">§2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tlc3.html#SP2">§2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">§1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">§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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">pack</span><span class="plain-syntax">-></span><span class="element-syntax">package_scope</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -291,7 +291,7 @@ elsewhere in the tree, then we return that other symbol.
|
|||
</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">InterSymbolsTable::symbol_from_name</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">InterSymbolsTable::symbol_from_name</span></span>:<br/><a href="2-st.html#SP11">§11</a>, <a href="2-st.html#SP19">§19</a><br/>Packages - <a href="2-pck.html#SP10">§10</a><br/>Transmigration - <a href="2-trn.html#SP4_1">§4.1</a>, <a href="2-trn.html#SP4_2_1">§4.2.1</a><br/>Inter in Text Files - <a href="3-iitf.html#SP4">§4</a>, <a href="3-iitf.html#SP5">§5</a>, <a href="3-iitf.html#SP5_1">§5.1</a>, <a href="3-iitf.html#SP6">§6</a>, <a href="3-iitf.html#SP7_1">§7.1</a><br/>Inter Data Types - <a href="3-idt.html#SP5">§5</a><br/>Metadata - <a href="3-mtd.html#SP1">§1</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Label Construct - <a href="5-tlc.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tlc3.html#SP2">§2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">§1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">§1</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="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_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">InterSymbolsTable::symbol_from_name</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">InterSymbolsTable::symbol_from_name</span></span>:<br/><a href="2-st.html#SP11">§11</a>, <a href="2-st.html#SP19">§19</a><br/>Packages - <a href="2-pck.html#SP10">§10</a><br/>Transmigration - <a href="2-trn.html#SP4_1">§4.1</a>, <a href="2-trn.html#SP4_2_1">§4.2.1</a><br/>Inter in Text Files - <a href="3-iitf.html#SP4">§4</a>, <a href="3-iitf.html#SP5">§5</a>, <a href="3-iitf.html#SP5_1">§5.1</a>, <a href="3-iitf.html#SP6">§6</a>, <a href="3-iitf.html#SP7_1">§7.1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP4">§4</a><br/>Metadata - <a href="3-mtd.html#SP1">§1</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Label Construct - <a href="5-tlc.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tlc3.html#SP2">§2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">§1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">§1</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="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">return</span><span class="plain-syntax"> </span><a href="2-st.html#SP5" class="function-link"><span class="function-syntax">InterSymbolsTable::search_inner</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="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -332,7 +332,7 @@ already defined in the package.
|
|||
</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">InterSymbolsTable::create_with_unique_name</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">InterSymbolsTable::create_with_unique_name</span></span>:<br/><a href="2-st.html#SP16_1_2">§16.1.2</a><br/>The Wiring - <a href="2-tw2.html#SP12">§12</a>, <a href="2-tw2.html#SP14">§14</a><br/>Inter in Text Files - <a href="3-iitf.html#SP5_1">§5.1</a><br/>Inter Data Types - <a href="3-idt.html#SP5">§5</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_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">InterSymbolsTable::create_with_unique_name</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">InterSymbolsTable::create_with_unique_name</span></span>:<br/><a href="2-st.html#SP16_1_2">§16.1.2</a><br/>The Wiring - <a href="2-tw2.html#SP12">§12</a>, <a href="2-tw2.html#SP14">§14</a><br/>Inter in Text Files - <a href="3-iitf.html#SP5_1">§5.1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP4">§4</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="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">return</span><span class="plain-syntax"> </span><a href="2-st.html#SP8" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_name_creating</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-st.html#SP11" class="function-link"><span class="function-syntax">InterSymbolsTable::render_identifier_unique</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>
|
||||
|
@ -369,7 +369,7 @@ to access this: one following equations, the other not.
|
|||
</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">InterSymbolsTable::symbol_from_ID_not_following</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">InterSymbolsTable::symbol_from_ID_not_following</span></span>:<br/>Inter in Text Files - <a href="3-iitf.html#SP10">§10</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Data Types - <a href="3-idt.html#SP4">§4</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_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">InterSymbolsTable::symbol_from_ID_not_following</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">InterSymbolsTable::symbol_from_ID_not_following</span></span>:<br/>Inter in Text Files - <a href="3-iitf.html#SP10">§10</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP2">§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="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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">T</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">index</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="constant-syntax">SYMBOL_BASE_VAL</span><span class="plain-syntax">;</span>
|
||||
|
@ -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">-></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">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">§13</a>, <a href="2-st.html#SP14">§14</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_1_4">§9.1.4</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Data Types - <a href="3-idt.html#SP3">§3</a><br/>Metadata - <a href="3-mtd.html#SP1">§1</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§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">§13</a>, <a href="2-st.html#SP14">§14</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_1_4">§9.1.4</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP5">§5</a><br/>Inter Data Types - <a href="3-idt.html#SP14">§14</a><br/>Metadata - <a href="3-mtd.html#SP1">§1</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§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">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>
|
||||
|
@ -387,7 +387,7 @@ to access this: one following equations, the other not.
|
|||
</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">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/>Inter Data Types - <a href="3-idt.html#SP7">§7</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">§2</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">§2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The Property Construct - <a href="4-tpc4.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Cast Construct - <a href="5-tcc2.html#SP2">§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 Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">§2</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">§2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The Property Construct - <a href="4-tpc4.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Cast Construct - <a href="5-tcc2.html#SP2">§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#SP11" 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">-></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>
|
||||
|
||||
|
@ -530,10 +530,16 @@ collision with the original <span class="extract"><span class="extract-syntax">p
|
|||
</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">InterSymbolsTable::id_from_symbol</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">InterSymbolsTable::id_from_symbol</span></span>:<br/><a href="2-st.html#SP17">§17</a><br/>Transmigration - <a href="2-trn.html#SP4_1_1">§4.1.1</a>, <a href="2-trn.html#SP4_2_1_1">§4.2.1.1</a><br/>Inter Data Types - <a href="3-idt.html#SP7">§7</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a></span></button><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><span class="reserved-syntax">inter_package</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="identifier-syntax">S</span><span class="plain-syntax">) {</span>
|
||||
<span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="function-syntax">InterSymbolsTable::id_from_symbol</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">InterSymbolsTable::id_from_symbol</span></span>:<br/><a href="2-st.html#SP17">§17</a><br/>Transmigration - <a href="2-trn.html#SP4_1_1">§4.1.1</a>, <a href="2-trn.html#SP4_2_1_1">§4.2.1.1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP4">§4</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a></span></button><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><span class="reserved-syntax">inter_package</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="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">"no symbol"</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">P_table</span><span class="plain-syntax"> = </span><a href="2-pck.html#SP9" class="function-link"><span class="function-syntax">InterPackage::scope</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">P_table</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">P_table</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><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-st.html#SP16" class="function-link"><span class="function-syntax">InterSymbolsTable::id_from_symbol_in_table</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P_table</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="function-syntax">InterSymbolsTable::id_from_symbol_in_table</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_in_table</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP15">§15</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">P_table</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><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 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">P_table</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 table"</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">SP_table</span><span class="plain-syntax"> = </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">owning_table</span><span 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_table</span><span class="plain-syntax"> != </span><span class="identifier-syntax">SP_table</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-st.html#SP16_1" class="named-paragraph-link"><span class="named-paragraph">We need an ID to a faraway symbol</span><span class="named-paragraph-number">16.1</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</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">-></span><span class="element-syntax">symbol_ID</span><span class="plain-syntax">;</span>
|
||||
|
@ -550,8 +556,6 @@ them on a package-by-package basis, so it is an error to call this function if
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">INTER_SYMBOLS</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"Seek ID of $3 from $4, which is not its owner $4\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">P_table</span><span class="plain-syntax">, </span><span class="identifier-syntax">SP_table</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SP_table</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><span class="identifier-syntax">I</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">"cannot make a local symbol ID from a global symbol"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-st.html#SP16_1_1" class="named-paragraph-link"><span class="named-paragraph">If this table already has a symbol wired to that faraway symbol, fine: use that</span><span class="named-paragraph-number">16.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-st.html#SP16_1_2" class="named-paragraph-link"><span class="named-paragraph">Otherwise make a new symbol in the table and wire it to the faraway one</span><span class="named-paragraph-number">16.1.2</span></a></span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
|
@ -578,7 +582,7 @@ them on a package-by-package basis, so it is an error to call this function if
|
|||
</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">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#SP7">§7</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">§2</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">§2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The Property Construct - <a href="4-tpc4.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Label Construct - <a href="5-tlc.html#SP2">§2</a><br/>The Local Construct - <a href="5-tlc2.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tlc3.html#SP2">§2</a><br/>The Cast Construct - <a href="5-tcc2.html#SP2">§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_from_symbol_at_bookmark</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">InterSymbolsTable::id_from_symbol_at_bookmark</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP15">§15</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">§2</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">§2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The Property Construct - <a href="4-tpc4.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Label Construct - <a href="5-tlc.html#SP2">§2</a><br/>The Local Construct - <a href="5-tlc2.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tlc3.html#SP2">§2</a><br/>The Cast Construct - <a href="5-tcc2.html#SP2">§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">return</span><span class="plain-syntax"> </span><a href="2-st.html#SP16" 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>
|
||||
|
@ -601,7 +605,7 @@ for packages as a special case of URLs for symbols.
|
|||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">MAX_URL_SYMBOL_NAME_DEPTH</span><span class="plain-syntax"> </span><span class="constant-syntax">512</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterSymbolsTable::write_symbol_URL</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">InterSymbolsTable::write_symbol_URL</span></span>:<br/>Symbols - <a href="2-sym.html#SP21">§21</a><br/>The Wiring - <a href="2-tw2.html#SP12">§12</a><br/>Inter in Text Files - <a href="3-iitf.html#SP10">§10</a><br/>The Plug Construct - <a href="6-tpc.html#SP2">§2</a><br/>The Socket Construct - <a href="6-tsc.html#SP2">§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">S</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterSymbolsTable::write_symbol_URL</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">InterSymbolsTable::write_symbol_URL</span></span>:<br/>Symbols - <a href="2-sym.html#SP21">§21</a><br/>The Wiring - <a href="2-tw2.html#SP12">§12</a><br/>Inter in Text Files - <a href="3-iitf.html#SP10">§10</a><br/>The Plug Construct - <a href="6-tpc.html#SP2">§2</a><br/>The Socket Construct - <a href="6-tsc.html#SP2">§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">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">chain</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_URL_SYMBOL_NAME_DEPTH</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">chain_length</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_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-st.html#SP3" class="function-link"><span class="function-syntax">InterSymbolsTable::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">owning_table</span><span class="plain-syntax">);</span>
|
||||
|
@ -626,7 +630,7 @@ means a symbol named <span class="extract"><span class="extract-syntax">this/tha
|
|||
</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">InterSymbolsTable::URL_to_symbol</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">InterSymbolsTable::URL_to_symbol</span></span>:<br/>Inter in Text Files - <a href="3-iitf.html#SP5_1">§5.1</a>, <a href="3-iitf.html#SP7_1">§7.1</a><br/>Inter Data Types - <a href="3-idt.html#SP5">§5</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">§1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">§1</a></span></button><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><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">URL</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">InterSymbolsTable::URL_to_symbol</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">InterSymbolsTable::URL_to_symbol</span></span>:<br/>Inter in Text Files - <a href="3-iitf.html#SP5_1">§5.1</a>, <a href="3-iitf.html#SP7_1">§7.1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP4">§4</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">§1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">§1</a></span></button><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><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">URL</span><span 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><span class="identifier-syntax">URL</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">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">at_P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">root_package</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>
|
||||
|
@ -659,7 +663,7 @@ not use the function if that is able to cause problems.
|
|||
</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">InterSymbolsTable::remove_symbol</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">InterSymbolsTable::remove_symbol</span></span>:<br/>Transmigration - <a href="2-trn.html#SP3_4">§3.4</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterSymbolsTable::remove_symbol</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">InterSymbolsTable::remove_symbol</span></span>:<br/>Transmigration - <a href="2-trn.html#SP3_4">§3.4</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">index</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="element-syntax">symbol_ID</span><span class="plain-syntax"> - (</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="constant-syntax">SYMBOL_BASE_VAL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="2-tw2.html#SP5" class="function-link"><span class="function-syntax">Wiring::wire_to</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="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">owning_table</span><span class="plain-syntax">-></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="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -668,7 +672,7 @@ not use the function if that is able to cause problems.
|
|||
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>§21. Logging. </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">InterSymbolsTable::log</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">InterSymbolsTable::log</span></span>:<br/>Bytecode Module - <a href="1-bm.html#SP3_6">§3.6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vst</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterSymbolsTable::log</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">InterSymbolsTable::log</span></span>:<br/>Bytecode Module - <a href="1-bm.html#SP3_6">§3.6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vst</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">ST</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">vst</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ST</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<null-stable>"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
|
|
|
@ -230,7 +230,7 @@ that for some transient flags:
|
|||
<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">-></span><span class="element-syntax">symbol_status</span><span class="plain-syntax"> & </span><span class="identifier-syntax">f</span><span class="plain-syntax">)?</span><span class="identifier-syntax">TRUE:FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterSymbol::set_flag</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">InterSymbol::set_flag</span></span>:<br/><a href="2-sym.html#SP10">§10</a><br/>Inter Data Types - <a href="3-idt.html#SP5">§5</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">f</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterSymbol::set_flag</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">InterSymbol::set_flag</span></span>:<br/><a href="2-sym.html#SP10">§10</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP4">§4</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">int</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><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 symbol"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">symbol_status</span><span class="plain-syntax"> = </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">symbol_status</span><span class="plain-syntax"> | </span><span class="identifier-syntax">f</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -276,7 +276,7 @@ to be defined as constants, variables and the like.
|
|||
<span class="plain-syntax"> </span><a href="2-sym.html#SP5" class="function-link"><span class="function-syntax">InterSymbol::set_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="constant-syntax">MISC_ISYMT</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">InterSymbol::misc_but_undefined</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">InterSymbol::misc_but_undefined</span></span>:<br/>Inter in Text Files - <a href="3-iitf.html#SP4">§4</a>, <a href="3-iitf.html#SP5_2">§5.2</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Data Types - <a href="3-idt.html#SP3">§3</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§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">int</span><span class="plain-syntax"> </span><span class="function-syntax">InterSymbol::misc_but_undefined</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">InterSymbol::misc_but_undefined</span></span>:<br/>Inter in Text Files - <a href="3-iitf.html#SP4">§4</a>, <a href="3-iitf.html#SP5_2">§5.2</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP5">§5</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§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="plain-syntax"> (</span><a href="2-sym.html#SP5" class="function-link"><span class="function-syntax">InterSymbol::get_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">) == </span><span class="constant-syntax">MISC_ISYMT</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::is_defined</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
|
||||
|
@ -401,12 +401,12 @@ 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">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">§16</a>, <a href="2-sym.html#SP17">§17</a><br/>Inter in Text Files - <a href="3-iitf.html#SP5_2">§5.2</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Data Types - <a href="3-idt.html#SP3">§3</a>, <a href="3-idt.html#SP5">§5</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The Property Construct - <a href="4-tpc4.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Local Construct - <a href="5-tlc2.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§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">§16</a>, <a href="2-sym.html#SP17">§17</a><br/>Inter in Text Files - <a href="3-iitf.html#SP5_2">§5.2</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Data Types - <a href="3-idt.html#SP20">§20</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The Property Construct - <a href="4-tpc4.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Local Construct - <a href="5-tlc2.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">definition</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">InterSymbol::is_defined</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">InterSymbol::is_defined</span></span>:<br/><a href="2-sym.html#SP9">§9</a><br/>Transmigration - <a href="2-trn.html#SP3_6_1">§3.6.1</a><br/>Inter Constructs - <a href="3-ic.html#SP5">§5</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Data Types - <a href="3-idt.html#SP5_1">§5.1</a><br/>The Label Construct - <a href="5-tlc.html#SP2">§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">int</span><span class="plain-syntax"> </span><span class="function-syntax">InterSymbol::is_defined</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">InterSymbol::is_defined</span></span>:<br/><a href="2-sym.html#SP9">§9</a><br/>Transmigration - <a href="2-trn.html#SP3_6_1">§3.6.1</a><br/>Inter Constructs - <a href="3-ic.html#SP5">§5</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP4_1">§4.1</a><br/>The Label Construct - <a href="5-tlc.html#SP2">§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">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-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
@ -457,7 +457,7 @@ in the current package. So:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InterSymbol::defined_elsewhere</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">InterSymbol::defined_elsewhere</span></span>:<br/>Inter in Text Files - <a href="3-iitf.html#SP5_2">§5.2</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Data Types - <a href="3-idt.html#SP3">§3</a>, <a href="3-idt.html#SP5">§5</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§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">int</span><span class="plain-syntax"> </span><span class="function-syntax">InterSymbol::defined_elsewhere</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">InterSymbol::defined_elsewhere</span></span>:<br/>Inter in Text Files - <a href="3-iitf.html#SP5_2">§5.2</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP5">§5</a><br/>Inter Data Types - <a href="3-idt.html#SP20">§20</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§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">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-tw2.html#SP2" class="function-link"><span class="function-syntax">Wiring::is_wired</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">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><a href="2-sym.html#SP5" class="function-link"><span class="function-syntax">InterSymbol::get_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">) == </span><span class="constant-syntax">PLUG_ISYMT</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>
|
||||
|
@ -467,7 +467,7 @@ in the current package. So:
|
|||
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>§19. Identifier name. </b></p>
|
||||
|
||||
<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">§11</a>, <a href="2-sym.html#SP20">§20</a><br/>Packages - <a href="2-pck.html#SP7">§7</a><br/>Symbols Tables - <a href="2-st.html#SP5_2">§5.2</a>, <a href="2-st.html#SP5_3_3">§5.3.3</a>, <a href="2-st.html#SP16_1_2">§16.1.2</a>, <a href="2-st.html#SP18">§18</a><br/>The Wiring - <a href="2-tw2.html#SP5">§5</a>, <a href="2-tw2.html#SP5_1">§5.1</a><br/>Transmigration - <a href="2-trn.html#SP3_6_1">§3.6.1</a>, <a href="2-trn.html#SP4_1">§4.1</a>, <a href="2-trn.html#SP4_1_1">§4.1.1</a>, <a href="2-trn.html#SP4_2_1">§4.2.1</a>, <a href="2-trn.html#SP4_2_1_1">§4.2.1.1</a>, <a href="2-trn.html#SP4_2_2_1">§4.2.2.1</a>, <a href="2-trn.html#SP4_2_2_3">§4.2.2.3</a>, <a href="2-trn.html#SP5_1">§5.1</a><br/>Inter Constructs - <a href="3-ic.html#SP5">§5</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_2_3_2_2">§9.2.3.2.2</a><br/>Inter in Text Files - <a href="3-iitf.html#SP10">§10</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Data Types - <a href="3-idt.html#SP3">§3</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">§2</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">§2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The Property Construct - <a href="4-tpc4.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Label Construct - <a href="5-tlc.html#SP2">§2</a><br/>The Local Construct - <a href="5-tlc2.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tlc3.html#SP2">§2</a><br/>The Plug Construct - <a href="6-tpc.html#SP2">§2</a><br/>The Socket Construct - <a href="6-tsc.html#SP2">§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">§11</a>, <a href="2-sym.html#SP20">§20</a><br/>Packages - <a href="2-pck.html#SP7">§7</a><br/>Symbols Tables - <a href="2-st.html#SP5_2">§5.2</a>, <a href="2-st.html#SP5_3_3">§5.3.3</a>, <a href="2-st.html#SP16_1_2">§16.1.2</a>, <a href="2-st.html#SP18">§18</a><br/>The Wiring - <a href="2-tw2.html#SP5">§5</a>, <a href="2-tw2.html#SP5_1">§5.1</a><br/>Transmigration - <a href="2-trn.html#SP3_6_1">§3.6.1</a>, <a href="2-trn.html#SP4_1">§4.1</a>, <a href="2-trn.html#SP4_1_1">§4.1.1</a>, <a href="2-trn.html#SP4_2_1">§4.2.1</a>, <a href="2-trn.html#SP4_2_1_1">§4.2.1.1</a>, <a href="2-trn.html#SP4_2_2_1">§4.2.2.1</a>, <a href="2-trn.html#SP4_2_2_3">§4.2.2.3</a>, <a href="2-trn.html#SP5_1">§5.1</a><br/>Inter Constructs - <a href="3-ic.html#SP5">§5</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_2_3_2_2">§9.2.3.2.2</a><br/>Inter in Text Files - <a href="3-iitf.html#SP10">§10</a><br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP5">§5</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">§2</a><br/>The Package Construct - <a href="4-tpc3.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">§2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The Property Construct - <a href="4-tpc4.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Label Construct - <a href="5-tlc.html#SP2">§2</a><br/>The Local Construct - <a href="5-tlc2.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tlc3.html#SP2">§2</a><br/>The Plug Construct - <a href="6-tpc.html#SP2">§2</a><br/>The Socket Construct - <a href="6-tsc.html#SP2">§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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">identifier</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -76,8 +76,8 @@ function togglePopup(material_id) {
|
|||
<ul class="toc"><li><a href="2-tw.html#SP1">§1. Introduction</a></li><li><a href="2-tw.html#SP3">§3. The resources</a></li><li><a href="2-tw.html#SP12">§12. The bytecode storage</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Introduction. </b>The data structure in this section may bring to mind the title of the Metallica
|
||||
song "The Thing That Should Not Be", but it works. It's also better that it used
|
||||
to be (which is more than can be said for Metallica).
|
||||
song "The Thing That Should Not Be", but it works. It's also better than it used
|
||||
to be (which is more than you can say for Metallica).
|
||||
</p>
|
||||
|
||||
<p class="commentary">Each inter tree needs to store data outside of its own <a href="2-in.html#SP1" class="internal">inter_tree_node</a> structures,
|
||||
|
@ -230,11 +230,11 @@ saves redundantly storing a type field in <a href="2-tw.html#SP3" class="interna
|
|||
</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">InterWarehouse::create_text</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">InterWarehouse::create_text</span></span>:<br/>Annotations - <a href="2-ann.html#SP6">§6</a>, <a href="2-ann.html#SP15">§15</a><br/>Transmigration - <a href="2-trn.html#SP3_3">§3.3</a><br/>Inter Data Types - <a href="3-idt.html#SP5">§5</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">§1</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Link Construct - <a href="4-tlc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">§2</a></span></button><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><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="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="function-syntax">InterWarehouse::create_text</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">InterWarehouse::create_text</span></span>:<br/>Annotations - <a href="2-ann.html#SP6">§6</a>, <a href="2-ann.html#SP15">§15</a><br/>Transmigration - <a href="2-trn.html#SP3_3">§3.3</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP4">§4</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">§1</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Link Construct - <a href="4-tlc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">§2</a></span></button><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><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">return</span><span class="plain-syntax"> </span><a href="2-tw.html#SP11" class="function-link"><span class="function-syntax">InterWarehouse::create_ref</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax">, </span><span class="identifier-syntax">STORE_POINTER_text_stream</span><span class="plain-syntax">(</span><span class="identifier-syntax">Str::new</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">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">InterWarehouse::get_text</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">InterWarehouse::get_text</span></span>:<br/>Inter Nodes - <a href="2-in.html#SP14">§14</a><br/>Annotations - <a href="2-ann.html#SP6">§6</a>, <a href="2-ann.html#SP7">§7</a>, <a href="2-ann.html#SP15">§15</a><br/>Transmigration - <a href="2-trn.html#SP3_3">§3.3</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_2_3_2_1">§9.2.3.2.1</a><br/>Inter Data Types - <a href="3-idt.html#SP5">§5</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">§1</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Link Construct - <a href="4-tlc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">§2</a></span></button><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><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="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">InterWarehouse::get_text</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">InterWarehouse::get_text</span></span>:<br/>Inter Nodes - <a href="2-in.html#SP14">§14</a><br/>Annotations - <a href="2-ann.html#SP6">§6</a>, <a href="2-ann.html#SP7">§7</a>, <a href="2-ann.html#SP15">§15</a><br/>Transmigration - <a href="2-trn.html#SP3_3">§3.3</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_2_3_2_1">§9.2.3.2.1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP4">§4</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">§1</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Link Construct - <a href="4-tlc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">§2</a></span></button><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><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="identifier-syntax">general_pointer</span><span class="plain-syntax"> </span><span class="identifier-syntax">gp</span><span class="plain-syntax"> = </span><a href="2-tw.html#SP11" class="function-link"><span class="function-syntax">InterWarehouse::get_ref</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">warehouse</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">gp</span><span class="plain-syntax">.</span><span class="identifier-syntax">run_time_type_code</span><span class="plain-syntax"> != </span><span class="identifier-syntax">text_stream_CLASS</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">RETRIEVE_POINTER_text_stream</span><span class="plain-syntax">(</span><span class="identifier-syntax">gp</span><span class="plain-syntax">);</span>
|
||||
|
@ -405,7 +405,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">warehouse_floor_space</span><span class="plain-syntax">;</span>
|
||||
</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/idt, 3/mtd, 4/tcc, 4/tpc, 4/tlc, 4/tac, 4/tpc2, 4/tpc3, 4/tkc, 4/tdc, 4/tvc, 4/tcc2, 4/tic, 4/tpc4, 4/tpc5, 4/tpc6, 4/tpc7, 5/tlc, 5/tlc2, 5/tic, 5/trc, 5/tvc, 5/tlc3, 5/tac, 5/tcc, 5/tec, 5/trc2, 5/tcc2, 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/tcc, 4/tpc, 4/tlc, 4/tac, 4/tpc2, 4/tpc3, 4/tkc, 4/tdc, 4/tvc, 4/tcc2, 4/tic, 4/tpc4, 4/tpc5, 4/tpc6, 4/tpc7, 5/tlc, 5/tlc2, 5/tic, 5/trc, 5/tvc, 5/tlc3, 5/tac, 5/tcc, 5/tec, 5/trc2, 5/tcc2, 5/tsc and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>§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.
|
||||
(This is the frame extent, and does not include the <span class="extract"><span class="extract-syntax">PREFRAME_SIZE</span></span>.)
|
||||
|
|
|
@ -249,7 +249,7 @@ made.
|
|||
</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">Wiring::wire_to_name</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">Wiring::wire_to_name</span></span>:<br/><a href="2-tw2.html#SP14">§14</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_1_3_2_2">§9.1.3.2.2</a><br/>Inter in Text Files - <a href="3-iitf.html#SP5_1">§5.1</a><br/>Inter Data Types - <a href="3-idt.html#SP5">§5</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">§1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">§1</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="identifier-syntax">T</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Wiring::wire_to_name</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">Wiring::wire_to_name</span></span>:<br/><a href="2-tw2.html#SP14">§14</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_1_3_2_2">§9.1.3.2.2</a><br/>Inter in Text Files - <a href="3-iitf.html#SP5_1">§5.1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP4">§4</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">§1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">§1</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="identifier-syntax">T</span><span 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">"null symbol cannot be wired"</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-sym.html#SP10" class="function-link"><span class="function-syntax">InterSymbol::is_metadata_key</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">)) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"metadata keys cannot be wired"</span><span 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">T</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"symbols cannot be wired to the empty name"</span><span class="plain-syntax">);</span>
|
||||
|
@ -257,12 +257,12 @@ made.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">wiring</span><span class="plain-syntax">.</span><span class="element-syntax">wants_to_connect_to</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">Wiring::is_wired_to_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">Wiring::is_wired_to_name</span></span>:<br/>Inter in Text Files - <a href="3-iitf.html#SP5_1">§5.1</a>, <a href="3-iitf.html#SP7">§7</a><br/>Inter Data Types - <a href="3-idt.html#SP5">§5</a><br/>The Plug Construct - <a href="6-tpc.html#SP2">§2</a><br/>The Socket Construct - <a href="6-tsc.html#SP2">§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">int</span><span class="plain-syntax"> </span><span class="function-syntax">Wiring::is_wired_to_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">Wiring::is_wired_to_name</span></span>:<br/>Inter in Text Files - <a href="3-iitf.html#SP5_1">§5.1</a>, <a href="3-iitf.html#SP7">§7</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP4">§4</a><br/>The Plug Construct - <a href="6-tpc.html#SP2">§2</a><br/>The Socket Construct - <a href="6-tsc.html#SP2">§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">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">wiring</span><span class="plain-syntax">.</span><span class="element-syntax">wants_to_connect_to</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">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="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">Wiring::wired_to_name</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">Wiring::wired_to_name</span></span>:<br/><a href="2-tw2.html#SP15">§15</a><br/>Transmigration - <a href="2-trn.html#SP4_2_2_2">§4.2.2.2</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_2_3_2_2">§9.2.3.2.2</a><br/>Inter in Text Files - <a href="3-iitf.html#SP5_1">§5.1</a>, <a href="3-iitf.html#SP7_1">§7.1</a><br/>Inter Data Types - <a href="3-idt.html#SP5">§5</a><br/>The Plug Construct - <a href="6-tpc.html#SP2">§2</a><br/>The Socket Construct - <a href="6-tsc.html#SP2">§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">Wiring::wired_to_name</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">Wiring::wired_to_name</span></span>:<br/><a href="2-tw2.html#SP15">§15</a><br/>Transmigration - <a href="2-trn.html#SP4_2_2_2">§4.2.2.2</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP9_2_3_2_2">§9.2.3.2.2</a><br/>Inter in Text Files - <a href="3-iitf.html#SP5_1">§5.1</a>, <a href="3-iitf.html#SP7_1">§7.1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP4">§4</a><br/>The Plug Construct - <a href="6-tpc.html#SP2">§2</a><br/>The Socket Construct - <a href="6-tsc.html#SP2">§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="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">wiring</span><span class="plain-syntax">.</span><span class="element-syntax">wants_to_connect_to</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>
|
||||
|
|
|
@ -541,7 +541,7 @@ not the place to explain it. See <a href="3-iibf.html" class="internal">Inter in
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-trn.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-bm.html">1</a></li><li class="progresschapter"><a href="2-it.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">ic</li><li class="progresssection"><a href="3-iibf.html">iibf</a></li><li class="progresssection"><a href="3-iitf.html">iitf</a></li><li class="progresssection"><a href="3-vi.html">vi</a></li><li class="progresssection"><a href="3-idt.html">idt</a></li><li class="progresssection"><a href="3-mtd.html">mtd</a></li><li class="progresssection"><a href="3-ie.html">ie</a></li><li class="progresschapter"><a href="4-tnc.html">4</a></li><li class="progresschapter"><a href="5-tlc.html">5</a></li><li class="progresschapter"><a href="6-tpc.html">6</a></li><li class="progressnext"><a href="3-iibf.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-trn.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-bm.html">1</a></li><li class="progresschapter"><a href="2-it.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">ic</li><li class="progresssection"><a href="3-iibf.html">iibf</a></li><li class="progresssection"><a href="3-iitf.html">iitf</a></li><li class="progresssection"><a href="3-vi.html">vi</a></li><li class="progresssection"><a href="3-ivp.html">ivp</a></li><li class="progresssection"><a href="3-idt.html">idt</a></li><li class="progresssection"><a href="3-mtd.html">mtd</a></li><li class="progresssection"><a href="3-ie.html">ie</a></li><li class="progresschapter"><a href="4-tnc.html">4</a></li><li class="progresschapter"><a href="5-tlc.html">5</a></li><li class="progresschapter"><a href="6-tpc.html">6</a></li><li class="progressnext"><a href="3-iibf.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -111,13 +111,13 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">Inter::Errors::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">Inter::Errors::quoted</span></span>:<br/>Annotations - <a href="2-ann.html#SP15">§15</a><br/>Inter Constructs - <a href="3-ic.html#SP5">§5</a><br/>Inter in Text Files - <a href="3-iitf.html#SP4">§4</a>, <a href="3-iitf.html#SP5">§5</a>, <a href="3-iitf.html#SP5_1">§5.1</a>, <a href="3-iitf.html#SP5_2">§5.2</a>, <a href="3-iitf.html#SP6">§6</a>, <a href="3-iitf.html#SP7_1">§7.1</a><br/>Inter Data Types - <a href="3-idt.html#SP5">§5</a>, <a href="3-idt.html#SP5_1">§5.1</a>, <a href="3-idt.html#SP7">§7</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§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">Inter::Errors::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">Inter::Errors::quoted</span></span>:<br/>Annotations - <a href="2-ann.html#SP15">§15</a><br/>Inter Constructs - <a href="3-ic.html#SP5">§5</a><br/>Inter in Text Files - <a href="3-iitf.html#SP4">§4</a>, <a href="3-iitf.html#SP5">§5</a>, <a href="3-iitf.html#SP5_1">§5.1</a>, <a href="3-iitf.html#SP5_2">§5.2</a>, <a href="3-iitf.html#SP6">§6</a>, <a href="3-iitf.html#SP7_1">§7.1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP4">§4</a>, <a href="3-ivp.html#SP4_1">§4.1</a><br/>Inter Data Types - <a href="3-idt.html#SP17">§17</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§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#SP1" class="function-link"><span class="function-syntax">Inter::Errors::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">-></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">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">Inter::Errors::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">Inter::Errors::plain</span></span>:<br/>Inter Constructs - <a href="3-ic.html#SP3">§3</a>, <a href="3-ic.html#SP4">§4</a>, <a href="3-ic.html#SP5">§5</a>, <a href="3-ic.html#SP14">§14</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP10">§10</a><br/>Inter in Text Files - <a href="3-iitf.html#SP3_1">§3.1</a><br/>Inter Data Types - <a href="3-idt.html#SP4_1">§4.1</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">§1</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Link Construct - <a href="4-tlc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">§2</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Label Construct - <a href="5-tlc.html#SP2">§2</a><br/>The Local Construct - <a href="5-tlc2.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">§2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tlc3.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tac.html#SP2">§2</a><br/>The Code Construct - <a href="5-tcc.html#SP2">§2</a><br/>The Evaluation Construct - <a href="5-tec.html#SP2">§2</a><br/>The Reference Construct - <a href="5-trc2.html#SP2">§2</a><br/>The Cast Construct - <a href="5-tcc2.html#SP2">§2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">§2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">§1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">§1</a><br/>The Version Construct - <a href="6-tvc.html#SP2">§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">Inter::Errors::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">Inter::Errors::plain</span></span>:<br/>Inter Constructs - <a href="3-ic.html#SP3">§3</a>, <a href="3-ic.html#SP4">§4</a>, <a href="3-ic.html#SP5">§5</a>, <a href="3-ic.html#SP14">§14</a><br/>Inter in Binary Files - <a href="3-iibf.html#SP10">§10</a><br/>Inter in Text Files - <a href="3-iitf.html#SP3_1">§3.1</a><br/>Inter Data Types - <a href="3-idt.html#SP19_1">§19.1</a><br/>The Comment Construct - <a href="4-tcc.html#SP1">§1</a><br/>The Pragma Construct - <a href="4-tpc.html#SP2">§2</a><br/>The Link Construct - <a href="4-tlc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The PackageType Construct - <a href="4-tpc2.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Primitive Construct - <a href="4-tpc7.html#SP2">§2</a><br/>The Label Construct - <a href="5-tlc.html#SP2">§2</a><br/>The Local Construct - <a href="5-tlc2.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">§2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tlc3.html#SP2">§2</a><br/>The Lab Construct - <a href="5-tac.html#SP2">§2</a><br/>The Code Construct - <a href="5-tcc.html#SP2">§2</a><br/>The Evaluation Construct - <a href="5-tec.html#SP2">§2</a><br/>The Reference Construct - <a href="5-trc2.html#SP2">§2</a><br/>The Cast Construct - <a href="5-tcc2.html#SP2">§2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">§2</a><br/>The Plug Construct - <a href="6-tpc.html#SP1">§1</a><br/>The Socket Construct - <a href="6-tsc.html#SP1">§1</a><br/>The Version Construct - <a href="6-tvc.html#SP2">§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="identifier-syntax">iem</span><span class="plain-syntax">-></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">-></span><span class="element-syntax">error_quote</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -195,7 +195,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-mtd.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-bm.html">1</a></li><li class="progresschapter"><a href="2-it.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-ic.html">ic</a></li><li class="progresssection"><a href="3-iibf.html">iibf</a></li><li class="progresssection"><a href="3-iitf.html">iitf</a></li><li class="progresssection"><a href="3-vi.html">vi</a></li><li class="progresssection"><a href="3-idt.html">idt</a></li><li class="progresssection"><a href="3-mtd.html">mtd</a></li><li class="progresscurrent">ie</li><li class="progresschapter"><a href="4-tnc.html">4</a></li><li class="progresschapter"><a href="5-tlc.html">5</a></li><li class="progresschapter"><a href="6-tpc.html">6</a></li><li class="progressnext"><a href="4-tnc.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-mtd.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-bm.html">1</a></li><li class="progresschapter"><a href="2-it.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-ic.html">ic</a></li><li class="progresssection"><a href="3-iibf.html">iibf</a></li><li class="progresssection"><a href="3-iitf.html">iitf</a></li><li class="progresssection"><a href="3-vi.html">vi</a></li><li class="progresssection"><a href="3-ivp.html">ivp</a></li><li class="progresssection"><a href="3-idt.html">idt</a></li><li class="progresssection"><a href="3-mtd.html">mtd</a></li><li class="progresscurrent">ie</li><li class="progresschapter"><a href="4-tnc.html">4</a></li><li class="progresschapter"><a href="5-tlc.html">5</a></li><li class="progresschapter"><a href="6-tpc.html">6</a></li><li class="progressnext"><a href="4-tnc.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -1035,7 +1035,7 @@ the definition of any symbol created in the instruction to <span class="extract"
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-ic.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-bm.html">1</a></li><li class="progresschapter"><a href="2-it.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-ic.html">ic</a></li><li class="progresscurrent">iibf</li><li class="progresssection"><a href="3-iitf.html">iitf</a></li><li class="progresssection"><a href="3-vi.html">vi</a></li><li class="progresssection"><a href="3-idt.html">idt</a></li><li class="progresssection"><a href="3-mtd.html">mtd</a></li><li class="progresssection"><a href="3-ie.html">ie</a></li><li class="progresschapter"><a href="4-tnc.html">4</a></li><li class="progresschapter"><a href="5-tlc.html">5</a></li><li class="progresschapter"><a href="6-tpc.html">6</a></li><li class="progressnext"><a href="3-iitf.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-ic.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-bm.html">1</a></li><li class="progresschapter"><a href="2-it.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-ic.html">ic</a></li><li class="progresscurrent">iibf</li><li class="progresssection"><a href="3-iitf.html">iitf</a></li><li class="progresssection"><a href="3-vi.html">vi</a></li><li class="progresssection"><a href="3-ivp.html">ivp</a></li><li class="progresssection"><a href="3-idt.html">idt</a></li><li class="progresssection"><a href="3-mtd.html">mtd</a></li><li class="progresssection"><a href="3-ie.html">ie</a></li><li class="progresschapter"><a href="4-tnc.html">4</a></li><li class="progresschapter"><a href="5-tlc.html">5</a></li><li class="progresschapter"><a href="6-tpc.html">6</a></li><li class="progressnext"><a href="3-iitf.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -265,11 +265,11 @@ enables us to tell if it's, e.g., a variable, defined by <span class="extract"><
|
|||
</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">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 Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§2</a><br/>The Cast Construct - <a href="5-tcc2.html#SP2">§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 Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§2</a><br/>The Cast Construct - <a href="5-tcc2.html#SP2">§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="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">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">TextualInter::find_symbol_in_table</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">TextualInter::find_symbol_in_table</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP7">§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="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_in_table</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">TextualInter::find_symbol_in_table</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP17">§17</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">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">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><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -467,7 +467,7 @@ the filter test.
|
|||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. Utility functions for writing construct lines. </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">TextualInter::write_symbol</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">TextualInter::write_symbol</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP4">§4</a>, <a href="3-idt.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="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">TextualInter::write_symbol</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">TextualInter::write_symbol</span></span>:<br/>Inter Value Pairs - <a href="3-ivp.html#SP2">§2</a><br/>Inter Data Types - <a href="3-idt.html#SP18">§18</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">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="2-tw2.html#SP2" class="function-link"><span class="function-syntax">Wiring::is_wired</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-st.html#SP18" class="function-link"><span class="function-syntax">InterSymbolsTable::write_symbol_URL</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</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">else</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>
|
||||
|
@ -477,14 +477,14 @@ the filter test.
|
|||
<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">TextualInter::write_symbol_from</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">TextualInter::write_symbol_from</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP7">§7</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Cast Construct - <a href="5-tcc2.html#SP2">§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_symbol_from</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">TextualInter::write_symbol_from</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP18">§18</a><br/>The Inv Construct - <a href="5-tic.html#SP2">§2</a><br/>The Cast Construct - <a href="5-tcc2.html#SP2">§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_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="plain-syntax"> </span><a href="2-pck.html#SP11" 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">-></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><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">S</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-iibf.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-bm.html">1</a></li><li class="progresschapter"><a href="2-it.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-ic.html">ic</a></li><li class="progresssection"><a href="3-iibf.html">iibf</a></li><li class="progresscurrent">iitf</li><li class="progresssection"><a href="3-vi.html">vi</a></li><li class="progresssection"><a href="3-idt.html">idt</a></li><li class="progresssection"><a href="3-mtd.html">mtd</a></li><li class="progresssection"><a href="3-ie.html">ie</a></li><li class="progresschapter"><a href="4-tnc.html">4</a></li><li class="progresschapter"><a href="5-tlc.html">5</a></li><li class="progresschapter"><a href="6-tpc.html">6</a></li><li class="progressnext"><a href="3-vi.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-iibf.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-bm.html">1</a></li><li class="progresschapter"><a href="2-it.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-ic.html">ic</a></li><li class="progresssection"><a href="3-iibf.html">iibf</a></li><li class="progresscurrent">iitf</li><li class="progresssection"><a href="3-vi.html">vi</a></li><li class="progresssection"><a href="3-ivp.html">ivp</a></li><li class="progresssection"><a href="3-idt.html">idt</a></li><li class="progresssection"><a href="3-mtd.html">mtd</a></li><li class="progresssection"><a href="3-ie.html">ie</a></li><li class="progresschapter"><a href="4-tnc.html">4</a></li><li class="progresschapter"><a href="5-tlc.html">5</a></li><li class="progresschapter"><a href="6-tpc.html">6</a></li><li class="progressnext"><a href="3-vi.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
356
docs/bytecode-module/3-ivp.html
Normal file
356
docs/bytecode-module/3-ivp.html
Normal file
|
@ -0,0 +1,356 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Inter Value Pairs</title>
|
||||
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
|
||||
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<script>
|
||||
function togglePopup(material_id) {
|
||||
var popup = document.getElementById(material_id);
|
||||
popup.classList.toggle("show");
|
||||
}
|
||||
</script>
|
||||
|
||||
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body class="commentary-font">
|
||||
<nav role="navigation">
|
||||
<h1><a href="../index.html">
|
||||
<img src="../docs-assets/Inform.png" height=72">
|
||||
</a></h1>
|
||||
<ul><li><a href="../compiler.html">compiler tools</a></li>
|
||||
<li><a href="../other.html">other tools</a></li>
|
||||
<li><a href="../extensions.html">extensions and kits</a></li>
|
||||
<li><a href="../units.html">unit test tools</a></li>
|
||||
</ul><h2>Compiler Webs</h2><ul>
|
||||
<li><a href="../inbuild/index.html">inbuild</a></li>
|
||||
<li><a href="../inform7/index.html">inform7</a></li>
|
||||
<li><a href="../inter/index.html">inter</a></li>
|
||||
</ul><h2>Inbuild Modules</h2><ul>
|
||||
<li><a href="../supervisor-module/index.html">supervisor</a></li>
|
||||
</ul><h2>Inform7 Modules</h2><ul>
|
||||
<li><a href="../core-module/index.html">core</a></li>
|
||||
<li><a href="../assertions-module/index.html">assertions</a></li>
|
||||
<li><a href="../values-module/index.html">values</a></li>
|
||||
<li><a href="../knowledge-module/index.html">knowledge</a></li>
|
||||
<li><a href="../imperative-module/index.html">imperative</a></li>
|
||||
<li><a href="../runtime-module/index.html">runtime</a></li>
|
||||
<li><a href="../if-module/index.html">if</a></li>
|
||||
<li><a href="../multimedia-module/index.html">multimedia</a></li>
|
||||
<li><a href="../index-module/index.html">index</a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="index.html"><span class="selectedlink">bytecode</span></a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../pipeline-module/index.html">pipeline</a></li>
|
||||
<li><a href="../final-module/index.html">final</a></li>
|
||||
</ul><h2>Services</h2><ul>
|
||||
<li><a href="../arch-module/index.html">arch</a></li>
|
||||
<li><a href="../calculus-module/index.html">calculus</a></li>
|
||||
<li><a href="../html-module/index.html">html</a></li>
|
||||
<li><a href="../inflections-module/index.html">inflections</a></li>
|
||||
<li><a href="../kinds-module/index.html">kinds</a></li>
|
||||
<li><a href="../linguistics-module/index.html">linguistics</a></li>
|
||||
<li><a href="../problems-module/index.html">problems</a></li>
|
||||
<li><a href="../syntax-module/index.html">syntax</a></li>
|
||||
<li><a href="../words-module/index.html">words</a></li>
|
||||
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Inter Value Pairs' generated by Inweb-->
|
||||
<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#3">Chapter 3: Their Instructions</a></li><li><b>Inter Value Pairs</b></li></ul></div>
|
||||
<p class="purpose">Two consecutive bytecode words are used to store a single value in binary Inter.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b></p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="reserved-syntax">unsigned</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">signed_inter_ti</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b></p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">LITERAL_IVAL</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax"> </span><span class="constant-syntax">0x10000</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">LITERAL_TEXT_IVAL</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">REAL_IVAL</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">ALIAS_IVAL</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">UNDEF_IVAL</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">DWORD_IVAL</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">PDWORD_IVAL</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">GLOB_IVAL</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">DIVIDER_IVAL</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterValuePairs::write</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">InterValuePairs::write</span></span>:<br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">§2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">§2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§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="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_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scope</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hex_flag</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">V1</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">LITERAL_IVAL:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">hex_flag</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"0x%x"</span><span class="plain-syntax">, </span><span class="identifier-syntax">V2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">V2</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">REAL_IVAL:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"r\""</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::write_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-in.html#SP14" class="function-link"><span class="function-syntax">Inode::ID_to_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">V2</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">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">LITERAL_TEXT_IVAL:</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="4-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::write_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-in.html#SP14" class="function-link"><span class="function-syntax">Inode::ID_to_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">V2</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">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">ALIAS_IVAL:</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#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">scope</span><span class="plain-syntax">, </span><span class="identifier-syntax">V2</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">symb</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="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">UNDEF_IVAL:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"undef"</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">GLOB_IVAL:</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="4-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::write_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-in.html#SP14" class="function-link"><span class="function-syntax">Inode::ID_to_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">V2</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">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">DWORD_IVAL:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"dw'"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::write_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-in.html#SP14" class="function-link"><span class="function-syntax">Inode::ID_to_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">V2</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">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PDWORD_IVAL:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"dwp'"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::write_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-in.html#SP14" class="function-link"><span class="function-syntax">Inode::ID_to_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">V2</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">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">DIVIDER_IVAL:</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="4-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::write_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-in.html#SP14" class="function-link"><span class="function-syntax">Inode::ID_to_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">V2</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">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">default:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<invalid-value-type>"</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>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InterValuePairs::read_int_in_I6_notation</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="constant-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val2</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">sign</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">base</span><span class="plain-syntax"> = </span><span class="constant-syntax">10</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</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::prefix_eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"-"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">)) { </span><span class="identifier-syntax">sign</span><span class="plain-syntax"> = -1; </span><span class="identifier-syntax">from</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">Str::prefix_eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"$"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">)) { </span><span class="identifier-syntax">base</span><span class="plain-syntax"> = </span><span class="constant-syntax">16</span><span class="plain-syntax">; </span><span class="identifier-syntax">from</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">Str::prefix_eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"$$"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">)) { </span><span class="identifier-syntax">base</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">; </span><span class="identifier-syntax">from</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">long</span><span class="plain-syntax"> </span><span class="reserved-syntax">long</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="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</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">pos</span><span class="plain-syntax">.</span><span class="element-syntax">index</span><span class="plain-syntax"> < </span><span class="identifier-syntax">from</span><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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">), </span><span class="identifier-syntax">d</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">c</span><span class="plain-syntax"> >= </span><span class="character-syntax">'a'</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> <= </span><span class="character-syntax">'z'</span><span class="plain-syntax">)) </span><span class="identifier-syntax">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">c</span><span class="plain-syntax">-</span><span class="character-syntax">'a'</span><span class="plain-syntax">+10;</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">c</span><span class="plain-syntax"> >= </span><span class="character-syntax">'A'</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> <= </span><span class="character-syntax">'Z'</span><span class="plain-syntax">)) </span><span class="identifier-syntax">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">c</span><span class="plain-syntax">-</span><span class="character-syntax">'A'</span><span class="plain-syntax">+10;</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">c</span><span class="plain-syntax"> >= </span><span class="character-syntax">'0'</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> <= </span><span class="character-syntax">'9'</span><span class="plain-syntax">)) </span><span class="identifier-syntax">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">c</span><span class="plain-syntax">-</span><span class="character-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">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">base</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">N</span><span class="plain-syntax"> = </span><span class="identifier-syntax">base</span><span class="plain-syntax">*</span><span class="identifier-syntax">N</span><span class="plain-syntax"> + (</span><span class="reserved-syntax">long</span><span class="plain-syntax"> </span><span class="reserved-syntax">long</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">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pos</span><span class="plain-syntax">.</span><span class="element-syntax">index</span><span class="plain-syntax"> > </span><span class="constant-syntax">34</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="identifier-syntax">N</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sign</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">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">LITERAL_IVAL</span><span class="plain-syntax">; *</span><span class="identifier-syntax">val2</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><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InterValuePairs::holds_symbol</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">InterValuePairs::holds_symbol</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP2">§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">val1</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val2</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">val1</span><span class="plain-syntax"> == </span><span class="constant-syntax">ALIAS_IVAL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterValuePairs::from_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">InterValuePairs::from_symbol</span></span>:<br/><a href="3-ivp.html#SP4_1">§4.1</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§2</a></span></button><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><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_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="constant-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val2</span><span 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">"no symbol"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">ALIAS_IVAL</span><span class="plain-syntax">; *</span><span class="identifier-syntax">val2</span><span class="plain-syntax"> = </span><a href="2-st.html#SP16" 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">pack</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_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">InterValuePairs::parse</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">InterValuePairs::parse</span></span>:<br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">§2</a><br/>The Variable Construct - <a href="4-tvc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">§2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§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="constant-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val2</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>
|
||||
<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_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">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"undef"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">UNDEF_IVAL</span><span class="plain-syntax">; *</span><span class="identifier-syntax">val2</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Str::begins_with_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"\""</span><span class="plain-syntax">)) && (</span><span class="identifier-syntax">Str::ends_with_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"\""</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">LITERAL_TEXT_IVAL</span><span class="plain-syntax">; *</span><span class="identifier-syntax">val2</span><span class="plain-syntax"> = </span><a href="2-tw.html#SP7" class="function-link"><span class="function-syntax">InterWarehouse::create_text</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">pack</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">glob_storage</span><span class="plain-syntax"> = </span><a href="2-tw.html#SP7" class="function-link"><span class="function-syntax">InterWarehouse::get_text</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">val2</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-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::parse_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">glob_storage</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">)-2, </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">Str::begins_with_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"r\""</span><span class="plain-syntax">)) && (</span><span class="identifier-syntax">Str::ends_with_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"\""</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">REAL_IVAL</span><span class="plain-syntax">; *</span><span class="identifier-syntax">val2</span><span class="plain-syntax"> = </span><a href="2-tw.html#SP7" class="function-link"><span class="function-syntax">InterWarehouse::create_text</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">pack</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">glob_storage</span><span class="plain-syntax"> = </span><a href="2-tw.html#SP7" class="function-link"><span class="function-syntax">InterWarehouse::get_text</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">val2</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-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::parse_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">glob_storage</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">)-2, </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">Str::begins_with_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"&\""</span><span class="plain-syntax">)) && (</span><span class="identifier-syntax">Str::ends_with_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"\""</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">GLOB_IVAL</span><span class="plain-syntax">; *</span><span class="identifier-syntax">val2</span><span class="plain-syntax"> = </span><a href="2-tw.html#SP7" class="function-link"><span class="function-syntax">InterWarehouse::create_text</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">pack</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">glob_storage</span><span class="plain-syntax"> = </span><a href="2-tw.html#SP7" class="function-link"><span class="function-syntax">InterWarehouse::get_text</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">val2</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-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::parse_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">glob_storage</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">)-2, </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">Str::begins_with_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"dw'"</span><span class="plain-syntax">)) && (</span><span class="identifier-syntax">Str::ends_with_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"'"</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">DWORD_IVAL</span><span class="plain-syntax">; *</span><span class="identifier-syntax">val2</span><span class="plain-syntax"> = </span><a href="2-tw.html#SP7" class="function-link"><span class="function-syntax">InterWarehouse::create_text</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">pack</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">glob_storage</span><span class="plain-syntax"> = </span><a href="2-tw.html#SP7" class="function-link"><span class="function-syntax">InterWarehouse::get_text</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">val2</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-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::parse_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">glob_storage</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">, </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">)-2, </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">Str::begins_with_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"dwp'"</span><span class="plain-syntax">)) && (</span><span class="identifier-syntax">Str::ends_with_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"'"</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">PDWORD_IVAL</span><span class="plain-syntax">; *</span><span class="identifier-syntax">val2</span><span class="plain-syntax"> = </span><a href="2-tw.html#SP7" class="function-link"><span class="function-syntax">InterWarehouse::create_text</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">pack</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">glob_storage</span><span class="plain-syntax"> = </span><a href="2-tw.html#SP7" class="function-link"><span class="function-syntax">InterWarehouse::get_text</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">val2</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-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::parse_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">glob_storage</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">, </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">)-2, </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">Str::begins_with_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"^\""</span><span class="plain-syntax">)) && (</span><span class="identifier-syntax">Str::ends_with_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"\""</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">DIVIDER_IVAL</span><span class="plain-syntax">; *</span><span class="identifier-syntax">val2</span><span class="plain-syntax"> = </span><a href="2-tw.html#SP7" class="function-link"><span class="function-syntax">InterWarehouse::create_text</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">pack</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">divider_storage</span><span class="plain-syntax"> = </span><a href="2-tw.html#SP7" class="function-link"><span class="function-syntax">InterWarehouse::get_text</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">val2</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-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::parse_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">divider_storage</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">)-2, </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">Str::get_first_char</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symb</span><span class="plain-syntax"> = </span><a href="2-st.html#SP19" class="function-link"><span class="function-syntax">InterSymbolsTable::URL_to_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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">symb</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">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</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">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span 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="character-syntax">'/'</span><span class="plain-syntax">) </span><span class="identifier-syntax">Str::clear</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</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">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</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">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</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><a href="3-ie.html#SP1" class="function-link"><span class="function-syntax">Inter::Errors::quoted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"URL ends in '/'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</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">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><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">leaf</span><span 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><a href="2-tw2.html#SP7" class="function-link"><span class="function-syntax">Wiring::is_wired_to_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">symb</span><span class="plain-syntax">)) && (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><a href="2-tw2.html#SP7" class="function-link"><span class="function-syntax">Wiring::wired_to_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">symb</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">symb</span><span class="plain-syntax"> = </span><a href="2-st.html#SP10" class="function-link"><span class="function-syntax">InterSymbolsTable::create_with_unique_name</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">leaf</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-tw2.html#SP7" class="function-link"><span class="function-syntax">Wiring::wire_to_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">symb</span><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">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-ivp.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Read symb</span><span class="named-paragraph-number">4.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">ident</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">Characters::isalpha</span><span class="plain-syntax">(</span><span class="identifier-syntax">Str::get_first_char</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">ident</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</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">Characters::isalpha</span><span class="plain-syntax">(</span><span class="identifier-syntax">Str::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</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">Characters::isdigit</span><span class="plain-syntax">(</span><span class="identifier-syntax">Str::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</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">Str::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">) != </span><span class="character-syntax">'_'</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ident</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ident</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">scope</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">symb</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-ivp.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Read symb</span><span class="named-paragraph-number">4.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">symb</span><span class="plain-syntax"> = </span><a href="2-st.html#SP10" class="function-link"><span class="function-syntax">InterSymbolsTable::create_with_unique_name</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">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::from_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">symb</span><span class="plain-syntax">, </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-sym.html#SP6" class="function-link"><span class="function-syntax">InterSymbol::set_flag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">symb</span><span class="plain-syntax">, </span><span class="constant-syntax">SPECULATIVE_ISYMF</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="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::get_first_char</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">c</span><span class="plain-syntax"> == </span><span class="character-syntax">'-'</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">Characters::isdigit</span><span class="plain-syntax">(</span><span class="identifier-syntax">c</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">sign</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">base</span><span class="plain-syntax"> = </span><span class="constant-syntax">10</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</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::prefix_eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"-"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">)) { </span><span class="identifier-syntax">sign</span><span class="plain-syntax"> = -1; </span><span class="identifier-syntax">from</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">Str::prefix_eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"0b"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">)) { </span><span class="identifier-syntax">base</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">; </span><span class="identifier-syntax">from</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span 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::prefix_eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"0x"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">)) { </span><span class="identifier-syntax">base</span><span class="plain-syntax"> = </span><span class="constant-syntax">16</span><span class="plain-syntax">; </span><span class="identifier-syntax">from</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">long</span><span class="plain-syntax"> </span><span class="reserved-syntax">long</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="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</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">pos</span><span class="plain-syntax">.</span><span class="element-syntax">index</span><span class="plain-syntax"> < </span><span class="identifier-syntax">from</span><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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">), </span><span class="identifier-syntax">d</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">c</span><span class="plain-syntax"> >= </span><span class="character-syntax">'a'</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> <= </span><span class="character-syntax">'z'</span><span class="plain-syntax">)) </span><span class="identifier-syntax">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">c</span><span class="plain-syntax">-</span><span class="character-syntax">'a'</span><span class="plain-syntax">+10;</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">c</span><span class="plain-syntax"> >= </span><span class="character-syntax">'A'</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> <= </span><span class="character-syntax">'Z'</span><span class="plain-syntax">)) </span><span class="identifier-syntax">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">c</span><span class="plain-syntax">-</span><span class="character-syntax">'A'</span><span class="plain-syntax">+10;</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">c</span><span class="plain-syntax"> >= </span><span class="character-syntax">'0'</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> <= </span><span class="character-syntax">'9'</span><span class="plain-syntax">)) </span><span class="identifier-syntax">d</span><span class="plain-syntax"> = </span><span class="identifier-syntax">c</span><span class="plain-syntax">-</span><span class="character-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">return</span><span class="plain-syntax"> </span><a href="3-ie.html#SP1" class="function-link"><span class="function-syntax">Inter::Errors::quoted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"bad digit"</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</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">d</span><span class="plain-syntax"> > </span><span class="identifier-syntax">base</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-ie.html#SP1" class="function-link"><span class="function-syntax">Inter::Errors::quoted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"bad digit for this number base"</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</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">N</span><span class="plain-syntax"> = </span><span class="identifier-syntax">base</span><span class="plain-syntax">*</span><span class="identifier-syntax">N</span><span class="plain-syntax"> + (</span><span class="reserved-syntax">long</span><span class="plain-syntax"> </span><span class="reserved-syntax">long</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">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pos</span><span class="plain-syntax">.</span><span class="element-syntax">index</span><span class="plain-syntax"> > </span><span class="constant-syntax">34</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-ie.html#SP1" class="function-link"><span class="function-syntax">Inter::Errors::quoted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"value out of range"</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</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="identifier-syntax">N</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sign</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><a href="3-idt.html#SP19" class="function-link"><span class="function-syntax">InterTypes::literal_is_in_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">type_wanted</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="3-ie.html#SP1" class="function-link"><span class="function-syntax">Inter::Errors::quoted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"value out of range"</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</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">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">LITERAL_IVAL</span><span class="plain-syntax">; *</span><span class="identifier-syntax">val2</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><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">return</span><span class="plain-syntax"> </span><a href="3-ie.html#SP1" class="function-link"><span class="function-syntax">Inter::Errors::quoted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"unrecognised value"</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</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="SP4_1" class="paragraph-anchor"></a><b>§4.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Read symb</span><span class="named-paragraph-number">4.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-idt.html#SP19" class="function-link"><span class="function-syntax">InterTypes::is_enumerated</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type_wanted</span><span class="plain-syntax">)) && (</span><a href="2-sym.html#SP15" class="function-link"><span class="function-syntax">InterSymbol::is_defined</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">symb</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="3-ie.html#SP1" class="function-link"><span class="function-syntax">Inter::Errors::quoted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"undefined symbol"</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</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">symbol_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP20" class="function-link"><span class="function-syntax">InterTypes::of_symbol</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_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP19" class="function-link"><span class="function-syntax">InterTypes::can_be_used_as</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">symbol_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">type_wanted</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</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">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="3-ivp.html#SP4" class="function-link"><span class="function-syntax">InterValuePairs::from_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">symb</span><span class="plain-syntax">, </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-ivp.html#SP4">§4</a> (twice).</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b></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">InterValuePairs::transpose_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">InterValuePairs::transpose_value</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§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">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="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">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">V1</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">DWORD_IVAL:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PDWORD_IVAL:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">LITERAL_TEXT_IVAL:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">REAL_IVAL:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">GLOB_IVAL:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">DIVIDER_IVAL:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">V2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">V2</span><span class="plain-syntax">];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</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">V2</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">InterValuePairs::validate</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">InterValuePairs::validate</span></span>:<br/>Verifying Inter - <a href="3-vi.html#SP1">§1</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">index</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="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">V1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">index</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">V2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">index</span><span class="plain-syntax">+1];</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-pck.html#SP9" 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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">scope</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">scope</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">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">V1</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">LITERAL_IVAL:</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">long</span><span class="plain-syntax"> </span><span class="reserved-syntax">long</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">signed_inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">V2</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-idt.html#SP19" class="function-link"><span class="function-syntax">InterTypes::literal_is_in_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">type</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">"value out of range"</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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">ALIAS_IVAL:</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#SP12" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_ID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">scope</span><span class="plain-syntax">, </span><span class="identifier-syntax">V2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">symb</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="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">"no such symbol"</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="2-sym.html#SP9" class="function-link"><span class="function-syntax">InterSymbol::misc_but_undefined</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">symb</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><a href="2-sym.html#SP18" class="function-link"><span class="function-syntax">InterSymbol::defined_elsewhere</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">symb</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><a href="3-idt.html#SP20" class="function-link"><span class="function-syntax">InterTypes::expresses_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">symb</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">"nonconstant symbol"</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_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">symbol_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP20" class="function-link"><span class="function-syntax">InterTypes::of_symbol</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">return</span><span class="plain-syntax"> </span><a href="3-idt.html#SP19" class="function-link"><span class="function-syntax">InterTypes::can_be_used_as</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">symbol_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">type</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><a href="2-in.html#SP10" class="function-link"><span class="function-syntax">Inode::get_error_location</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="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">DWORD_IVAL:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PDWORD_IVAL:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">LITERAL_TEXT_IVAL:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">REAL_IVAL:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">GLOB_IVAL:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">UNDEF_IVAL:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">DIVIDER_IVAL:</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">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">"value of unknown category"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-vi.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-bm.html">1</a></li><li class="progresschapter"><a href="2-it.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-ic.html">ic</a></li><li class="progresssection"><a href="3-iibf.html">iibf</a></li><li class="progresssection"><a href="3-iitf.html">iitf</a></li><li class="progresssection"><a href="3-vi.html">vi</a></li><li class="progresscurrent">ivp</li><li class="progresssection"><a href="3-idt.html">idt</a></li><li class="progresssection"><a href="3-mtd.html">mtd</a></li><li class="progresssection"><a href="3-ie.html">ie</a></li><li class="progresschapter"><a href="4-tnc.html">4</a></li><li class="progresschapter"><a href="5-tlc.html">5</a></li><li class="progresschapter"><a href="6-tpc.html">6</a></li><li class="progressnext"><a href="3-idt.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -191,7 +191,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-idt.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-bm.html">1</a></li><li class="progresschapter"><a href="2-it.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-ic.html">ic</a></li><li class="progresssection"><a href="3-iibf.html">iibf</a></li><li class="progresssection"><a href="3-iitf.html">iitf</a></li><li class="progresssection"><a href="3-vi.html">vi</a></li><li class="progresssection"><a href="3-idt.html">idt</a></li><li class="progresscurrent">mtd</li><li class="progresssection"><a href="3-ie.html">ie</a></li><li class="progresschapter"><a href="4-tnc.html">4</a></li><li class="progresschapter"><a href="5-tlc.html">5</a></li><li class="progresschapter"><a href="6-tpc.html">6</a></li><li class="progressnext"><a href="3-ie.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-idt.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-bm.html">1</a></li><li class="progresschapter"><a href="2-it.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-ic.html">ic</a></li><li class="progresssection"><a href="3-iibf.html">iibf</a></li><li class="progresssection"><a href="3-iitf.html">iitf</a></li><li class="progresssection"><a href="3-vi.html">vi</a></li><li class="progresssection"><a href="3-ivp.html">ivp</a></li><li class="progresssection"><a href="3-idt.html">idt</a></li><li class="progresscurrent">mtd</li><li class="progresssection"><a href="3-ie.html">ie</a></li><li class="progresschapter"><a href="4-tnc.html">4</a></li><li class="progresschapter"><a href="5-tlc.html">5</a></li><li class="progresschapter"><a href="6-tpc.html">6</a></li><li class="progressnext"><a href="3-ie.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -106,7 +106,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">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="function-syntax">Inter::Verify::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">Inter::Verify::symbol</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP7">§7</a><br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§2</a><br/>The Cast Construct - <a href="5-tcc2.html#SP2">§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="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">ID</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="function-syntax">Inter::Verify::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">Inter::Verify::symbol</span></span>:<br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The DefaultValue Construct - <a href="4-tdc.html#SP2">§2</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§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="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">ID</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">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#SP9" 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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">T</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">T</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">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</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>
|
||||
|
@ -123,7 +123,33 @@ function togglePopup(material_id) {
|
|||
<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_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">Inter::Verify::global_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">Inter::Verify::global_symbol</span></span>:<br/>The Inv Construct - <a href="5-tic.html#SP2">§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="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">ID</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="function-syntax">Inter::Verify::TID</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">Inter::Verify::TID</span></span>:<br/>The Kind Construct - <a href="4-tkc.html#SP2">§2</a><br/>The Cast Construct - <a href="5-tcc2.html#SP2">§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="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"> == </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><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="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="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::symbol</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">TID</span><span class="plain-syntax">, </span><span class="constant-syntax">KIND_IST</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">Inter::Verify::constructor_code</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">Inter::Verify::constructor_code</span></span>:<br/>The Kind Construct - <a href="4-tkc.html#SP2">§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">index</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">-></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">index</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><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Verify::typed_data</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">Inter::Verify::typed_data</span></span>:<br/>The Variable Construct - <a href="4-tvc.html#SP2">§2</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§2</a><br/>The Property Construct - <a href="4-tpc4.html#SP2">§2</a><br/>The Local Construct - <a href="5-tlc2.html#SP2">§2</a><br/>The Ref Construct - <a href="5-trc.html#SP2">§2</a><br/>The Val Construct - <a href="5-tvc.html#SP2">§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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">data_field</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">P</span><span class="plain-syntax">-></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">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::TID</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">-></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">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">data_field</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_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="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-ivp.html#SP5" class="function-link"><span class="function-syntax">InterValuePairs::validate</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">data_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">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="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">Inter::Verify::global_symbol</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">Inter::Verify::global_symbol</span></span>:<br/>The Inv Construct - <a href="5-tic.html#SP2">§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="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">ID</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">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</span></a><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="identifier-syntax">ID</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">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">"IO"</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">"3no symbol for ID"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">); }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">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">S</span><span class="plain-syntax">);</span>
|
||||
|
@ -153,7 +179,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">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="function-syntax">Inter::Verify::symbol_KOI</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">Inter::Verify::symbol_KOI</span></span>:<br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§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="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_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">Inter::Verify::symbol_KOI</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">Inter::Verify::symbol_KOI</span></span>:<br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§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="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_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="2-pck.html#SP9" 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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">T</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">T</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">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</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>
|
||||
|
@ -170,14 +196,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">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="function-syntax">Inter::Verify::data_type</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">Inter::Verify::data_type</span></span>:<br/>The Kind Construct - <a href="4-tkc.html#SP2">§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">index</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">-></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">index</span><span class="plain-syntax">];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_data_type</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idt</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP3" class="function-link"><span class="function-syntax">Inter::Types::find_by_ID</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">idt</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="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 data 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="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Verify::writer</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">Inter::Verify::writer</span></span>:<br/>Bytecode Module - <a href="1-bm.html#SP3_3">§3.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">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">format_string</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vI</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Verify::writer</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">Inter::Verify::writer</span></span>:<br/>Bytecode Module - <a href="1-bm.html#SP3_3">§3.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">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">format_string</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vI</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><span class="reserved-syntax">inter_tree_node</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">vI</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) { </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<no frame>"</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%05d -> "</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">-></span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">index</span><span class="plain-syntax">);</span>
|
||||
|
@ -187,7 +206,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-iitf.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-bm.html">1</a></li><li class="progresschapter"><a href="2-it.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-ic.html">ic</a></li><li class="progresssection"><a href="3-iibf.html">iibf</a></li><li class="progresssection"><a href="3-iitf.html">iitf</a></li><li class="progresscurrent">vi</li><li class="progresssection"><a href="3-idt.html">idt</a></li><li class="progresssection"><a href="3-mtd.html">mtd</a></li><li class="progresssection"><a href="3-ie.html">ie</a></li><li class="progresschapter"><a href="4-tnc.html">4</a></li><li class="progresschapter"><a href="5-tlc.html">5</a></li><li class="progresschapter"><a href="6-tpc.html">6</a></li><li class="progressnext"><a href="3-idt.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-iitf.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-bm.html">1</a></li><li class="progresschapter"><a href="2-it.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-ic.html">ic</a></li><li class="progresssection"><a href="3-iibf.html">iibf</a></li><li class="progresssection"><a href="3-iitf.html">iitf</a></li><li class="progresscurrent">vi</li><li class="progresssection"><a href="3-ivp.html">ivp</a></li><li class="progresssection"><a href="3-idt.html">idt</a></li><li class="progresssection"><a href="3-mtd.html">mtd</a></li><li class="progresssection"><a href="3-ie.html">ie</a></li><li class="progresschapter"><a href="4-tnc.html">4</a></li><li class="progresschapter"><a href="5-tlc.html">5</a></li><li class="progresschapter"><a href="6-tpc.html">6</a></li><li class="progressnext"><a href="3-ivp.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -117,7 +117,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">name_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">mr3</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">con_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::parse</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">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">con_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP17" 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">con_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>
|
||||
|
@ -135,7 +135,7 @@ function togglePopup(material_id) {
|
|||
<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">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"quotient{ (%c*) }"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">op</span><span class="plain-syntax"> = </span><span class="constant-syntax">CONSTANT_QUOTIENT_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">op</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">P</span><span class="plain-syntax"> =</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><a href="2-st.html#SP17" 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">con_name</span><span class="plain-syntax">), </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::to_TID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_type</span><span class="plain-syntax">), </span><span class="identifier-syntax">op</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">ilp</span><span class="plain-syntax">-></span><span class="element-syntax">indent_level</span><span class="plain-syntax">);</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><a href="2-st.html#SP17" 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">con_name</span><span class="plain-syntax">), </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_wrt_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_type</span><span class="plain-syntax">), </span><span class="identifier-syntax">op</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">ilp</span><span class="plain-syntax">-></span><span class="element-syntax">indent_level</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-ic.html#SP12" class="function-link"><span class="function-syntax">InterConstruct::verify_construct</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="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">conts</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>
|
||||
|
@ -154,10 +154,10 @@ function togglePopup(material_id) {
|
|||
<span 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">(&</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"{ (%c*) }"</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">conts_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::type_operand</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_type</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_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">conts_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP13" class="function-link"><span class="function-syntax">InterTypes::type_operand</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_type</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">form</span><span class="plain-syntax"> = </span><span class="constant-syntax">CONSTANT_INDIRECT_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">P</span><span class="plain-syntax"> =</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><a href="2-st.html#SP17" 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">con_name</span><span class="plain-syntax">), </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::to_TID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_type</span><span class="plain-syntax">), </span><span class="identifier-syntax">form</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">ilp</span><span class="plain-syntax">-></span><span class="element-syntax">indent_level</span><span class="plain-syntax">);</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><a href="2-st.html#SP17" 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">con_name</span><span class="plain-syntax">), </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_wrt_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_type</span><span class="plain-syntax">), </span><span class="identifier-syntax">form</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">ilp</span><span class="plain-syntax">-></span><span class="element-syntax">indent_level</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-ic.html#SP12" class="function-link"><span class="function-syntax">InterConstruct::verify_construct</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="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">conts</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>
|
||||
|
@ -177,19 +177,19 @@ function togglePopup(material_id) {
|
|||
|
||||
<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">(&</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"struct{ (%c*) }"</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="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><a href="2-st.html#SP17" 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">con_name</span><span class="plain-syntax">), </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::to_TID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_type</span><span class="plain-syntax">), </span><span class="constant-syntax">CONSTANT_STRUCT</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">ilp</span><span class="plain-syntax">-></span><span class="element-syntax">indent_level</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><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::type_arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_type</span><span class="plain-syntax">);</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><a href="2-st.html#SP17" 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">con_name</span><span class="plain-syntax">), </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_wrt_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_type</span><span class="plain-syntax">), </span><span class="constant-syntax">CONSTANT_STRUCT</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">ilp</span><span class="plain-syntax">-></span><span class="element-syntax">indent_level</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><a href="3-idt.html#SP13" class="function-link"><span class="function-syntax">InterTypes::type_arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_type</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">counter</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">conts</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">match_results</span><span class="plain-syntax"> </span><span class="identifier-syntax">mr3</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">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr3</span><span class="plain-syntax">, </span><span class="identifier-syntax">conts</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="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">conts_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::type_operand</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">counter</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">conts_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP13" class="function-link"><span class="function-syntax">InterTypes::type_operand</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">counter</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-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::append</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">conts_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr3</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="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="plain-syntax"> </span><span class="identifier-syntax">Str::copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">conts</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr3</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr3</span><span class="plain-syntax">, </span><span class="identifier-syntax">conts</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">" *(%c*?) *"</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">conts_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::type_operand</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">counter</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">conts_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP13" class="function-link"><span class="function-syntax">InterTypes::type_operand</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">counter</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-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::append</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">conts_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr3</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="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="plain-syntax"> }</span>
|
||||
|
@ -202,18 +202,18 @@ function togglePopup(material_id) {
|
|||
|
||||
<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">(&</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"table{ (%c*) }"</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="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><a href="2-st.html#SP17" 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">con_name</span><span class="plain-syntax">), </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::to_TID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_type</span><span class="plain-syntax">), </span><span class="constant-syntax">CONSTANT_TABLE</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">ilp</span><span class="plain-syntax">-></span><span class="element-syntax">indent_level</span><span class="plain-syntax">);</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><a href="2-st.html#SP17" 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">con_name</span><span class="plain-syntax">), </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_wrt_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_type</span><span class="plain-syntax">), </span><span class="constant-syntax">CONSTANT_TABLE</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">ilp</span><span class="plain-syntax">-></span><span class="element-syntax">indent_level</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-ic.html#SP12" class="function-link"><span class="function-syntax">InterConstruct::verify_construct</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="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">conts</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">match_results</span><span class="plain-syntax"> </span><span class="identifier-syntax">mr3</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">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr3</span><span class="plain-syntax">, </span><span class="identifier-syntax">conts</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::append</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::untyped</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr3</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="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="4-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::append</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::untyped</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr3</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="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="plain-syntax"> </span><span class="identifier-syntax">Str::copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">conts</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr3</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr3</span><span class="plain-syntax">, </span><span class="identifier-syntax">conts</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">" *(%c*?) *"</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-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::append</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::untyped</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr3</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="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="4-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::append</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::untyped</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr3</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="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="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>
|
||||
|
@ -230,7 +230,7 @@ function togglePopup(material_id) {
|
|||
<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">parsed_text</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">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-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::new_textual</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><a href="2-st.html#SP17" 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">con_name</span><span class="plain-syntax">), </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::to_TID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_type</span><span class="plain-syntax">), </span><span class="identifier-syntax">ID</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">-></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="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="4-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::new_textual</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><a href="2-st.html#SP17" 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">con_name</span><span class="plain-syntax">), </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_wrt_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_type</span><span class="plain-syntax">), </span><span class="identifier-syntax">ID</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">-></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">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
|
@ -240,20 +240,20 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">block</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="3-ie.html#SP1" class="function-link"><span class="function-syntax">Inter::Errors::quoted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"no such function body"</span><span class="plain-syntax">, </span><span class="identifier-syntax">fname</span><span class="plain-syntax">, </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="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="4-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::new_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><a href="2-st.html#SP17" 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">con_name</span><span class="plain-syntax">), </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::to_TID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_type</span><span class="plain-syntax">), </span><span class="identifier-syntax">block</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">-></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="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="4-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::new_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><a href="2-st.html#SP17" 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">con_name</span><span class="plain-syntax">), </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_wrt_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_type</span><span class="plain-syntax">), </span><span class="identifier-syntax">block</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">-></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">return</span><span class="plain-syntax">;</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">con_val1</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">con_val2</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-idt.html#SP5" class="function-link"><span class="function-syntax">Inter::Types::read_data_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">con_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, &</span><span class="identifier-syntax">con_val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">con_val2</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="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-ivp.html#SP4" class="function-link"><span class="function-syntax">InterValuePairs::parse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">con_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, &</span><span class="identifier-syntax">con_val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">con_val2</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">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-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::new_numerical</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><a href="2-st.html#SP17" 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">con_name</span><span class="plain-syntax">), </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::to_TID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_type</span><span class="plain-syntax">), </span><span class="identifier-syntax">con_val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_val2</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">-></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="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="4-tcc2.html#SP2" class="function-link"><span class="function-syntax">Inter::Constant::new_numerical</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><a href="2-st.html#SP17" 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">con_name</span><span class="plain-syntax">), </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_wrt_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_type</span><span class="plain-syntax">), </span><span class="identifier-syntax">con_val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_val2</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">-></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">Inter::Constant::parse_text</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">Inter::Constant::parse_text</span></span>:<br/>Annotations - <a href="2-ann.html#SP15">§15</a><br/>Inter Data Types - <a href="3-idt.html#SP5">§5</a><br/>The Link Construct - <a href="4-tlc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">§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">parsed_text</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</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">Inter::Constant::parse_text</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">Inter::Constant::parse_text</span></span>:<br/>Annotations - <a href="2-ann.html#SP15">§15</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP4">§4</a><br/>The Link Construct - <a href="4-tlc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">§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">parsed_text</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</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">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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">literal_mode</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">LOOP_THROUGH_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
|
||||
|
@ -278,7 +278,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</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">Inter::Constant::write_text</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">Inter::Constant::write_text</span></span>:<br/>Annotations - <a href="2-ann.html#SP14">§14</a><br/>Inter Data Types - <a href="3-idt.html#SP4">§4</a><br/>The Link Construct - <a href="4-tlc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Constant::write_text</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">Inter::Constant::write_text</span></span>:<br/>Annotations - <a href="2-ann.html#SP14">§14</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP2">§2</a><br/>The Link Construct - <a href="4-tlc.html#SP2">§2</a><br/>The Append Construct - <a href="4-tac.html#SP2">§2</a><br/>The Splat Construct - <a href="5-tsc.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</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">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::get</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">c</span><span class="plain-syntax"> == </span><span class="constant-syntax">9</span><span class="plain-syntax">) { </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\t"</span><span class="plain-syntax">); </span><span class="reserved-syntax">continue</span><span class="plain-syntax">; }</span>
|
||||
|
@ -332,21 +332,8 @@ function togglePopup(material_id) {
|
|||
<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="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">con_val1</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">con_val2</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="comment-syntax"> if (Inter::Types::conceptual_type(conts_type) == NULL) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tc</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">S</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTANT_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="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><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::constructor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Constant::kind_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">tc</span><span class="plain-syntax">)) == </span><span class="constant-syntax">COLUMN_IDT</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::symbol_to_pair</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><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">tc</span><span class="plain-syntax">, &</span><span class="identifier-syntax">con_val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">con_val2</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#SP1" class="function-link"><span class="function-syntax">Inter::Errors::quoted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"not a table column constant"</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</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="identifier-syntax">FALSE</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="plain-syntax"> </span><span class="comment-syntax"> WRITE_TO(STDERR, "Line <%S> S = <%S>\n", line, S);</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP5" class="function-link"><span class="function-syntax">Inter::Types::read_data_pair</span></a><span class="plain-syntax">(</span><span class="identifier-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">conts_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, &</span><span class="identifier-syntax">con_val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">con_val2</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">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">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="comment-syntax"> }</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-ivp.html#SP4" class="function-link"><span class="function-syntax">InterValuePairs::parse</span></a><span class="plain-syntax">(</span><span class="identifier-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">conts_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, &</span><span class="identifier-syntax">con_val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">con_val2</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">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">FALSE</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">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">P</span><span class="plain-syntax">-></span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">-2] = </span><span class="identifier-syntax">con_val1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">P</span><span class="plain-syntax">-></span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax">-1] = </span><span class="identifier-syntax">con_val2</span><span class="plain-syntax">;</span>
|
||||
|
@ -359,7 +346,7 @@ function togglePopup(material_id) {
|
|||
|
||||
<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">-></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">FORMAT_CONST_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">CONSTANT_DIRECT:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = </span><a href="3-idt.html#SP3" class="function-link"><span class="function-syntax">Inter::Types::transpose_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">DATA_CONST_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">DATA_CONST_IFLD</span><span class="plain-syntax">+1], </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="identifier-syntax">P</span><span class="plain-syntax">-></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">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = </span><a href="3-ivp.html#SP5" class="function-link"><span class="function-syntax">InterValuePairs::transpose_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">DATA_CONST_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">DATA_CONST_IFLD</span><span class="plain-syntax">+1], </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="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CONSTANT_INDIRECT_TEXT:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">DATA_CONST_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">-></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">DATA_CONST_IFLD</span><span class="plain-syntax">]];</span>
|
||||
|
@ -372,7 +359,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CONSTANT_STRUCT:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CONSTANT_TABLE:</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">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax"><P-></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="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">i</span><span class="plain-syntax">+1] = </span><a href="3-idt.html#SP3" class="function-link"><span class="function-syntax">Inter::Types::transpose_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">i</span><span class="plain-syntax">+1], </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="identifier-syntax">P</span><span class="plain-syntax">-></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">i</span><span class="plain-syntax">+1] = </span><a href="3-ivp.html#SP5" class="function-link"><span class="function-syntax">InterValuePairs::transpose_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">i</span><span class="plain-syntax">+1], </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><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -381,13 +368,13 @@ function togglePopup(material_id) {
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Constant::verify</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">Inter::Constant::verify</span></span>:<br/><a href="4-tcc2.html#SP1">§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="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">Inter::Verify::defn</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">DEFN_CONST_IFLD</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">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-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::verify_type_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_CONST_IFLD</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::typed_data</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_CONST_IFLD</span><span class="plain-syntax">, -1, </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_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">it</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::from_TID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">KIND_CONST_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">it</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_CONST_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">-></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">FORMAT_CONST_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">CONSTANT_DIRECT:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax"> != </span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax"> + </span><span class="constant-syntax">2</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">"extent wrong"</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="3-idt.html#SP3" class="function-link"><span class="function-syntax">Inter::Types::validate_pair</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">DATA_CONST_IFLD</span><span class="plain-syntax">, </span><span class="identifier-syntax">it</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-ivp.html#SP5" class="function-link"><span class="function-syntax">InterValuePairs::validate</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">DATA_CONST_IFLD</span><span class="plain-syntax">, </span><span class="identifier-syntax">it</span><span 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">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CONSTANT_SUM_LIST:</span>
|
||||
|
@ -396,7 +383,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CONSTANT_QUOTIENT_LIST:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax"> % </span><span class="constant-syntax">2</span><span class="plain-syntax">) != </span><span class="constant-syntax">1</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">"extent wrong"</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">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">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax"><P-></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="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP3" class="function-link"><span class="function-syntax">Inter::Types::validate_pair</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">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">it</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-ivp.html#SP5" class="function-link"><span class="function-syntax">InterValuePairs::validate</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">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">it</span><span 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="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
|
@ -407,9 +394,9 @@ function togglePopup(material_id) {
|
|||
<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="identifier-syntax">P</span><span class="plain-syntax">-></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">i</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">symb</span><span class="plain-syntax"> = </span><a href="2-st.html#SP14" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_data_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V1</span><span class="plain-syntax">, </span><span class="identifier-syntax">V2</span><span class="plain-syntax">, </span><a href="2-pck.html#SP9" 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="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">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP5" class="function-link"><span class="function-syntax">Inter::Types::of_symbol</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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">type</span><span class="plain-syntax">.</span><span class="element-syntax">underlying_data</span><span class="plain-syntax">-></span><span class="element-syntax">type_ID</span><span class="plain-syntax"> != </span><span class="constant-syntax">COLUMN_IDT</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_data</span><span class="plain-syntax">-></span><span class="element-syntax">type_ID</span><span class="plain-syntax"> != </span><span class="constant-syntax">UNCHECKED_IDT</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#SP20" class="function-link"><span class="function-syntax">InterTypes::of_symbol</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="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">constructor</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">constructor</span><span class="plain-syntax"> != </span><span class="constant-syntax">COLUMN_ITCONC</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">constructor</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">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 table column constant"</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><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
|
@ -419,30 +406,31 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CONSTANT_INDIRECT_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">P</span><span class="plain-syntax">-></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">2</span><span class="plain-syntax">) != </span><span class="constant-syntax">1</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">"extent wrong"</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_data_type</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idt</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::data_format</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">it</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">idt</span><span class="plain-syntax">) && ((</span><span class="identifier-syntax">idt</span><span class="plain-syntax">-></span><span class="element-syntax">type_ID</span><span class="plain-syntax"> == </span><span class="constant-syntax">LIST_IDT</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">idt</span><span class="plain-syntax">-></span><span class="element-syntax">type_ID</span><span class="plain-syntax"> == </span><span class="constant-syntax">RULEBOOK_IDT</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">idt</span><span class="plain-syntax">-></span><span class="element-syntax">type_ID</span><span class="plain-syntax"> == </span><span class="constant-syntax">COLUMN_IDT</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">conts_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::type_operand</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">it</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">constructor</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">it</span><span 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"> == </span><span class="constant-syntax">LIST_ITCONC</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">constructor</span><span class="plain-syntax"> == </span><span class="constant-syntax">RULEBOOK_ITCONC</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">constructor</span><span class="plain-syntax"> == </span><span class="constant-syntax">COLUMN_ITCONC</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">conts_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP13" class="function-link"><span class="function-syntax">InterTypes::type_operand</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">it</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax"><P-></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="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP3" class="function-link"><span class="function-syntax">Inter::Types::validate_pair</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">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">conts_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><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-ivp.html#SP5" class="function-link"><span class="function-syntax">InterValuePairs::validate</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">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">conts_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>
|
||||
<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">idt</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 list"</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><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::conceptual_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">it</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">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 list"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</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="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CONSTANT_STRUCT:</span><span 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="element-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax"> % </span><span class="constant-syntax">2</span><span class="plain-syntax">) != </span><span class="constant-syntax">1</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">"extent odd"</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_data_type</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idt</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::data_format</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">it</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">idt</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">idt</span><span class="plain-syntax">-></span><span class="element-syntax">type_ID</span><span class="plain-syntax"> == </span><span class="constant-syntax">STRUCT_IDT</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><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::arity</span></a><span class="plain-syntax">(</span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::conceptual_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">it</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><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">it</span><span 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"> == </span><span class="constant-syntax">STRUCT_ITCONC</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><a href="3-idt.html#SP13" class="function-link"><span class="function-syntax">InterTypes::type_arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">it</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">given</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">DATA_CONST_IFLD</span><span class="plain-syntax">)/2;</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"> != </span><span class="identifier-syntax">given</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">"extent not same size as struct definition"</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">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">DATA_CONST_IFLD</span><span class="plain-syntax">, </span><span class="identifier-syntax">counter</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="function-syntax"><P-></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="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">conts_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::type_operand</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">it</span><span class="plain-syntax">, </span><span class="identifier-syntax">counter</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#SP3" class="function-link"><span class="function-syntax">Inter::Types::validate_pair</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">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">conts_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><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">conts_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP13" class="function-link"><span class="function-syntax">InterTypes::type_operand</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">it</span><span class="plain-syntax">, </span><span class="identifier-syntax">counter</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-ivp.html#SP5" class="function-link"><span class="function-syntax">InterValuePairs::validate</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">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">conts_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>
|
||||
<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">idt</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 struct"</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">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 struct"</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><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -467,11 +455,11 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ann.html#SP7" class="function-link"><span class="function-syntax">SymbolAnnotation::get_b</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_name</span><span class="plain-syntax">, </span><span class="constant-syntax">HEX_IANN</span><span class="plain-syntax">)) </span><span class="identifier-syntax">hex</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">con_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">"constant "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::write_type_field</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_CONST_IFLD</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::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_CONST_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">con_name</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">-></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">FORMAT_CONST_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">CONSTANT_DIRECT:</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP4" class="function-link"><span class="function-syntax">Inter::Types::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>
|
||||
<span class="plain-syntax"> </span><a href="3-ivp.html#SP2" class="function-link"><span class="function-syntax">InterValuePairs::write</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="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">DATA_CONST_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">DATA_CONST_IFLD</span><span class="plain-syntax">+1], </span><a href="2-pck.html#SP11" 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">hex</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CONSTANT_TABLE:</span>
|
||||
|
@ -489,7 +477,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax"><P-></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="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> > </span><span class="constant-syntax">DATA_CONST_IFLD</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>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP4" class="function-link"><span class="function-syntax">Inter::Types::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><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">i</span><span class="plain-syntax">+1], </span><a href="2-pck.html#SP11" 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">hex</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ivp.html#SP2" class="function-link"><span class="function-syntax">InterValuePairs::write</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">P</span><span class="plain-syntax">-></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">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">i</span><span class="plain-syntax">+1], </span><a href="2-pck.html#SP11" 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">hex</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" }"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
|
@ -499,7 +487,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="constant-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax"><P-></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="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> > </span><span class="constant-syntax">DATA_CONST_IFLD</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>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP4" class="function-link"><span class="function-syntax">Inter::Types::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><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">i</span><span class="plain-syntax">+1], </span><a href="2-pck.html#SP11" 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">hex</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ivp.html#SP2" class="function-link"><span class="function-syntax">InterValuePairs::write</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">P</span><span class="plain-syntax">-></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">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">i</span><span class="plain-syntax">+1], </span><a href="2-pck.html#SP11" 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">hex</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" }"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
|
@ -524,12 +512,12 @@ function togglePopup(material_id) {
|
|||
<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">Inter::Constant::type_of</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">Inter::Constant::type_of</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_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">con_symbol</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#SP7" class="function-link"><span class="function-syntax">Inter::Types::untyped</span></a><span class="plain-syntax">();</span>
|
||||
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Constant::type_of</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">Inter::Constant::type_of</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP20">§20</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_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">con_symbol</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::untyped</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">con_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">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#SP7" class="function-link"><span class="function-syntax">Inter::Types::untyped</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">D</span><span class="plain-syntax">-></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">CONSTANT_IST</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::untyped</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#SP7" class="function-link"><span class="function-syntax">Inter::Types::from_TID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="constant-syntax">KIND_CONST_IFLD</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">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::untyped</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">D</span><span class="plain-syntax">-></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">CONSTANT_IST</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::untyped</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#SP14" class="function-link"><span class="function-syntax">InterTypes::from_TID_in_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="constant-syntax">KIND_CONST_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="function-syntax">Inter::Constant::code_block</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_symbol</span><span class="plain-syntax">) {</span>
|
||||
|
@ -603,7 +591,7 @@ function togglePopup(material_id) {
|
|||
|
||||
<span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Constant::evaluate</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="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val2</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">val1</span><span class="plain-syntax"> == </span><span class="constant-syntax">LITERAL_IVAL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">val2</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#SP7" class="function-link"><span class="function-syntax">Inter::Types::pair_holds_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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#SP4" class="function-link"><span class="function-syntax">InterValuePairs::holds_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">aliased</span><span class="plain-syntax"> = </span><a href="2-st.html#SP14" class="function-link"><span class="function-syntax">InterSymbolsTable::symbol_from_data_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">aliased</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">"bad aliased symbol"</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><span class="identifier-syntax">aliased</span><span class="plain-syntax">-></span><span class="element-syntax">definition</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -104,7 +104,7 @@ function togglePopup(material_id) {
|
|||
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">con_val1</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">con_val2</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-idt.html#SP5" class="function-link"><span class="function-syntax">Inter::Types::read_data_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::from_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_kind</span><span class="plain-syntax">), </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">con_val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">con_val2</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="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-ivp.html#SP4" class="function-link"><span class="function-syntax">InterValuePairs::parse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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><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">con_kind</span><span class="plain-syntax">), </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">con_val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">con_val2</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">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-tdc.html#SP2" class="function-link"><span class="function-syntax">Inter::DefaultValue::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><a href="2-st.html#SP17" 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">con_kind</span><span class="plain-syntax">), </span><span class="identifier-syntax">con_val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_val2</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">-></span><span class="element-syntax">indent_level</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">);</span>
|
||||
|
@ -126,7 +126,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_kind</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">KIND_DEF_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">con_kind</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">"defaultvalue %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">con_kind</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP4" class="function-link"><span class="function-syntax">Inter::Types::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>
|
||||
<span class="plain-syntax"> </span><a href="3-ivp.html#SP2" class="function-link"><span class="function-syntax">InterValuePairs::write</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="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL1_DEF_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL1_DEF_IFLD</span><span class="plain-syntax">+1], </span><a href="2-pck.html#SP11" 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">FALSE</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">"defaultvalue can't be written"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -115,13 +115,13 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inst_kind</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">ktext</span><span class="plain-syntax">, </span><span class="constant-syntax">KIND_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="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_data_type</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idt</span><span class="plain-syntax"> = </span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::data_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inst_kind</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#SP3" class="function-link"><span class="function-syntax">Inter::Types::is_enumerated</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">idt</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_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">inst_type</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">inst_kind</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#SP19" 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="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#SP1" class="function-link"><span class="function-syntax">Inter::Errors::quoted</span></a><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">ilp</span><span class="plain-syntax">-></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="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">v1</span><span class="plain-syntax"> = </span><span class="constant-syntax">UNDEF_IVAL</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vtext</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#SP5" class="function-link"><span class="function-syntax">Inter::Types::read_data_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::untyped</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">vtext</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v2</span><span class="plain-syntax">, </span><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">E</span><span class="plain-syntax"> = </span><a href="3-ivp.html#SP4" class="function-link"><span class="function-syntax">InterValuePairs::parse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::untyped</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">vtext</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v2</span><span class="plain-syntax">, </span><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">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="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="4-tic.html#SP2" class="function-link"><span class="function-syntax">Inter::Instance::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><a href="2-st.html#SP17" 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">inst_name</span><span class="plain-syntax">), </span><a href="2-st.html#SP17" 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">inst_kind</span><span class="plain-syntax">), </span><span class="identifier-syntax">v1</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax">, (</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></span><span class="element-syntax">indent_level</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">);</span>
|
||||
|
@ -149,14 +149,14 @@ function togglePopup(material_id) {
|
|||
<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><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#SP9" 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">-></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_INST_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#SP1" class="function-link"><span class="function-syntax">Inter::Verify::symbol</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">-></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">KIND_INST_IFLD</span><span class="plain-syntax">], </span><span class="constant-syntax">KIND_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="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inst_kind</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#SP9" 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">-></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">KIND_INST_IFLD</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_data_type</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idt</span><span class="plain-syntax"> = </span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::data_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inst_kind</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#SP3" class="function-link"><span class="function-syntax">Inter::Types::is_enumerated</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">idt</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">inst_type</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">inst_kind</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#SP19" 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><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL1_INST_IFLD</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">P</span><span class="plain-syntax">-></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">VAL1_INST_IFLD</span><span class="plain-syntax">] = </span><span class="constant-syntax">LITERAL_IVAL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL2_INST_IFLD</span><span class="plain-syntax">] = </span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::next_enumerated_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inst_kind</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">"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="3-idt.html#SP3" class="function-link"><span class="function-syntax">Inter::Types::validate_pair</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_INST_IFLD</span><span class="plain-syntax">, </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::from_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inst_kind</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-ivp.html#SP5" class="function-link"><span class="function-syntax">InterValuePairs::validate</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_INST_IFLD</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">inst_kind</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">vcount</span><span class="plain-syntax"> = </span><a href="2-in.html#SP9" class="function-link"><span class="function-syntax">Inode::bump_verification_count</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">vcount</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
|
@ -175,12 +175,9 @@ function togglePopup(material_id) {
|
|||
<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><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_INST_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">inst_kind</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">KIND_INST_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">inst_name</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">inst_kind</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_data_type</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idt</span><span class="plain-syntax"> = </span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::data_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inst_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">idt</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">"instance %S %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">inst_name</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">inst_kind</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP4" class="function-link"><span class="function-syntax">Inter::Types::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>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL1_INST_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL2_INST_IFLD</span><span class="plain-syntax">], </span><a href="2-pck.html#SP11" 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">FALSE</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">"instance with bad data 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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"instance %S %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">inst_name</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">inst_kind</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ivp.html#SP2" class="function-link"><span class="function-syntax">InterValuePairs::write</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="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL1_INST_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL2_INST_IFLD</span><span class="plain-syntax">], </span><a href="2-pck.html#SP11" 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">FALSE</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">"bad instance"</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">inst_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -192,16 +189,16 @@ function togglePopup(material_id) {
|
|||
<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">-></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_INST_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">Inter::Instance::type_of</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">Inter::Instance::type_of</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP5">§5</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_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">inst_name</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#SP7" class="function-link"><span class="function-syntax">Inter::Types::untyped</span></a><span class="plain-syntax">();</span>
|
||||
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Instance::type_of</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">Inter::Instance::type_of</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP20">§20</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_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">inst_name</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::untyped</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">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">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#SP7" class="function-link"><span class="function-syntax">Inter::Types::untyped</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">D</span><span class="plain-syntax">-></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">INSTANCE_IST</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::untyped</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#SP7" class="function-link"><span class="function-syntax">Inter::Types::from_symbol</span></a><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">KIND_INST_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><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::untyped</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">D</span><span class="plain-syntax">-></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">INSTANCE_IST</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::untyped</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#SP10" class="function-link"><span class="function-syntax">InterTypes::from_type_name</span></a><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">KIND_INST_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">Inter::Instance::kind_of</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">Inter::Instance::kind_of</span></span>:<br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§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">inst_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#SP7" class="function-link"><span class="function-syntax">Inter::Types::conceptual_type</span></a><span class="plain-syntax">(</span><a href="4-tic.html#SP2" class="function-link"><span class="function-syntax">Inter::Instance::type_of</span></a><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">return</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><a href="4-tic.html#SP2" class="function-link"><span class="function-syntax">Inter::Instance::type_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inst_name</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
|
|
|
@ -99,7 +99,6 @@ function togglePopup(material_id) {
|
|||
<span class="definition-keyword">define</span> <span class="constant-syntax">CONSTRUCTOR_KIND_IFLD</span><span class="plain-syntax"> </span><span class="constant-syntax">8</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">OPERANDS_KIND_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_KIND_IFR</span><span class="plain-syntax"> </span><span class="constant-syntax">9</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">MAX_ICON_OPERANDS</span><span class="plain-syntax"> </span><span class="constant-syntax">128</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Kind::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">Inter::Kind::read</span></span>:<br/><a href="4-tkc.html#SP1">§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>
|
||||
|
@ -109,108 +108,33 @@ function togglePopup(material_id) {
|
|||
<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">-></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="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">(&</span><span class="identifier-syntax">parsed_description</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="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">UNCHECKED_IDT</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">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">operands</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_ICON_OPERANDS</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_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">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="constant-syntax">MAX_ICON_OPERANDS</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="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">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">ilp</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="identifier-syntax">L</span><span class="string-syntax">"<= (%i+)"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">super_kind</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">mr2</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0], </span><span class="constant-syntax">KIND_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="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#SP3" class="function-link"><span class="function-syntax">Inter::Types::is_enumerated</span></a><span class="plain-syntax">(</span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::data_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">super_kind</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">E</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="3-idt.html#SP19" 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_kind</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#SP1" class="function-link"><span class="function-syntax">Inter::Errors::quoted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"not a kind which can have subkinds"</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="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">constructor</span><span class="plain-syntax"> = </span><span class="constant-syntax">ENUM_IDT</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">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">L</span><span class="string-syntax">"rulebook of (%i+)"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">constructor</span><span class="plain-syntax"> = </span><span class="constant-syntax">RULEBOOK_IDT</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">conts_kind</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">mr2</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0], </span><span class="constant-syntax">KIND_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="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[0] = </span><a href="2-st.html#SP17" 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">conts_kind</span><span class="plain-syntax">); </span><span class="identifier-syntax">arity</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">L</span><span class="string-syntax">"list of (%i+)"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">constructor</span><span class="plain-syntax"> = </span><span class="constant-syntax">LIST_IDT</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">conts_kind</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">mr2</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0], </span><span class="constant-syntax">KIND_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="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[0] = </span><a href="2-st.html#SP17" 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">conts_kind</span><span class="plain-syntax">); </span><span class="identifier-syntax">arity</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">L</span><span class="string-syntax">"relation of (%i+) to (%i+)"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">constructor</span><span class="plain-syntax"> = </span><span class="constant-syntax">RELATION_IDT</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">X_kind</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">mr2</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0], </span><span class="constant-syntax">KIND_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="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">Y_kind</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">mr2</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[1], </span><span class="constant-syntax">KIND_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="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[0] = </span><a href="2-st.html#SP17" 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">X_kind</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[1] = </span><a href="2-st.html#SP17" 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">Y_kind</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">arity</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</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">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">L</span><span class="string-syntax">"column of (%i+)"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">constructor</span><span class="plain-syntax"> = </span><span class="constant-syntax">COLUMN_IDT</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">conts_kind</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">mr2</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0], </span><span class="constant-syntax">KIND_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="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[0] = </span><a href="2-st.html#SP17" 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">conts_kind</span><span class="plain-syntax">); </span><span class="identifier-syntax">arity</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">L</span><span class="string-syntax">"description of (%i+)"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">constructor</span><span class="plain-syntax"> = </span><span class="constant-syntax">DESCRIPTION_IDT</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">conts_kind</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">mr2</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0], </span><span class="constant-syntax">KIND_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="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[0] = </span><a href="2-st.html#SP17" 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">conts_kind</span><span class="plain-syntax">); </span><span class="identifier-syntax">arity</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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">L</span><span class="string-syntax">"(function) (%c+) -> (%i+)"</span><span class="plain-syntax">)) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">L</span><span class="string-syntax">"(rule) (%c+) -> (%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">Str::eq</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="identifier-syntax">I</span><span class="string-syntax">"function"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">constructor</span><span class="plain-syntax"> = </span><span class="constant-syntax">FUNCTION_IDT</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">constructor</span><span class="plain-syntax"> = </span><span class="constant-syntax">RULE_IDT</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">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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</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">[2];</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">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-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">arity</span><span class="plain-syntax"> >= </span><span class="constant-syntax">MAX_ICON_OPERANDS</span><span class="plain-syntax">) { *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-ie.html#SP1" class="function-link"><span class="function-syntax">Inter::Errors::plain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"too many args"</span><span class="plain-syntax">, </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">operands</span><span class="plain-syntax">[</span><span class="identifier-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="plain-syntax"> </span><span class="identifier-syntax">match_results</span><span class="plain-syntax"> </span><span class="identifier-syntax">mr3</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">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr3</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">" *(%i+) *(%c*)"</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">arg_kind</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">mr3</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0], </span><span class="constant-syntax">KIND_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="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr3</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">arity</span><span class="plain-syntax"> >= </span><span class="constant-syntax">MAX_ICON_OPERANDS</span><span class="plain-syntax">) { *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-ie.html#SP1" class="function-link"><span class="function-syntax">Inter::Errors::plain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"too many args"</span><span class="plain-syntax">, </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">operands</span><span class="plain-syntax">[</span><span class="identifier-syntax">arity</span><span class="plain-syntax">++] = </span><a href="2-st.html#SP17" 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">arg_kind</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">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">to</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-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">arity</span><span class="plain-syntax"> >= </span><span class="constant-syntax">MAX_ICON_OPERANDS</span><span class="plain-syntax">) { *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-ie.html#SP1" class="function-link"><span class="function-syntax">Inter::Errors::plain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"too many args"</span><span class="plain-syntax">, </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">operands</span><span class="plain-syntax">[</span><span class="identifier-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="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">res_kind</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">to</span><span class="plain-syntax">, </span><span class="constant-syntax">KIND_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="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">arity</span><span class="plain-syntax"> >= </span><span class="constant-syntax">MAX_ICON_OPERANDS</span><span class="plain-syntax">) { *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-ie.html#SP1" class="function-link"><span class="function-syntax">Inter::Errors::plain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"too many args"</span><span class="plain-syntax">, </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">operands</span><span class="plain-syntax">[</span><span class="identifier-syntax">arity</span><span class="plain-syntax">++] = </span><a href="2-st.html#SP17" 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">res_kind</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">L</span><span class="string-syntax">"struct (%c+)"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">constructor</span><span class="plain-syntax"> = </span><span class="constant-syntax">STRUCT_IDT</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">elements</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">match_results</span><span class="plain-syntax"> </span><span class="identifier-syntax">mr3</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">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr3</span><span class="plain-syntax">, </span><span class="identifier-syntax">elements</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">" *(%i+) *(%c*)"</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">arg_kind</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">mr3</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0], </span><span class="constant-syntax">KIND_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="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">elements</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr3</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">arity</span><span class="plain-syntax"> >= </span><span class="constant-syntax">MAX_ICON_OPERANDS</span><span class="plain-syntax">) { *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-ie.html#SP1" class="function-link"><span class="function-syntax">Inter::Errors::plain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"too many args"</span><span class="plain-syntax">, </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">operands</span><span class="plain-syntax">[</span><span class="identifier-syntax">arity</span><span class="plain-syntax">++] = </span><a href="2-st.html#SP17" 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">arg_kind</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="plain-syntax"> </span><span class="reserved-syntax">inter_data_type</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idt</span><span class="plain-syntax"> = </span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::parse_data_type</span></a><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">-></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">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="identifier-syntax">constructor</span><span class="plain-syntax"> = </span><span class="identifier-syntax">idt</span><span class="plain-syntax">-></span><span class="element-syntax">type_ID</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">-></span><span class="element-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[1], </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">parsed_description</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Regexp::dispose_of</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr2</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-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><a href="2-st.html#SP17" 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">constructor</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">super_kind</span><span class="plain-syntax">)?(</span><a href="2-st.html#SP17" 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_kind</span><span class="plain-syntax">)):0,</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="constant-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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_data_type</span><span class="plain-syntax"> *</span><span class="function-syntax">Inter::Kind::parse_data_type</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="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_data_type</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idt</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP3" class="function-link"><span class="function-syntax">Inter::Types::find_by_name</span></a><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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">idt</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-ie.html#SP1" class="function-link"><span class="function-syntax">Inter::Errors::quoted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"no such data type"</span><span class="plain-syntax">, </span><span class="identifier-syntax">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="identifier-syntax">idt</span><span 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-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><a href="2-st.html#SP17" 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_kind</span><span class="plain-syntax">)?(</span><a href="2-st.html#SP17" 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_kind</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">-></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">(&</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">Inter::Kind::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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">constructor</span><span class="plain-syntax"> < </span><span class="constant-syntax">UNCHECKED_IDT</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">constructor</span><span class="plain-syntax"> > </span><span class="constant-syntax">RULEBOOK_IDT</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="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">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>
|
||||
|
@ -239,55 +163,60 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">ENUM_RANGE_KIND_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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">the_kind</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#SP9" 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">-></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_KIND_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">the_kind</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) ||</span>
|
||||
<span class="plain-syntax"> (</span><a href="3-idt.html#SP3" class="function-link"><span class="function-syntax">Inter::Types::is_enumerated</span></a><span class="plain-syntax">(</span><a href="3-idt.html#SP3" class="function-link"><span class="function-syntax">Inter::Types::find_by_ID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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_KIND_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="3-idt.html#SP19" 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">the_kind</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="reserved-syntax">return</span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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_KIND_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#SP1" class="function-link"><span class="function-syntax">Inter::Verify::symbol</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">-></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_KIND_IFLD</span><span class="plain-syntax">], </span><span class="constant-syntax">KIND_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="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">super_kind</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#SP9" 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">-></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_KIND_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-idt.html#SP3" class="function-link"><span class="function-syntax">Inter::Types::is_enumerated</span></a><span class="plain-syntax">(</span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::data_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">super_kind</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#SP19" 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_kind</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">"subkind of nonenumerated kind"</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><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::data_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCTOR_KIND_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#SP1" class="function-link"><span class="function-syntax">Inter::Verify::constructor_code</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">CONSTRUCTOR_KIND_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="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">-></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_KIND_IFR</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">-></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_KIND_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">LIST_IDT:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">RULEBOOK_IDT:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">EQUATED_ITCONC:</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"> != </span><span class="constant-syntax">1</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">"wrong equated arity"</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">P</span><span class="plain-syntax">-></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_KIND_IFLD</span><span class="plain-syntax">] == </span><span class="constant-syntax">0</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">"no equated kind"</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="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::TID</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">-></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_KIND_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="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">LIST_ITCONC:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">RULEBOOK_ITCONC:</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"> != </span><span class="constant-syntax">1</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">"wrong list arity"</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">P</span><span class="plain-syntax">-></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_KIND_IFLD</span><span class="plain-syntax">] == </span><span class="constant-syntax">0</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">"no listed kind"</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="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::symbol</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">-></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_KIND_IFLD</span><span class="plain-syntax">], </span><span class="constant-syntax">KIND_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#SP1" class="function-link"><span class="function-syntax">Inter::Verify::TID</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">-></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_KIND_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="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">COLUMN_IDT:</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"> != </span><span class="constant-syntax">1</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">"wrong col arity"</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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">COLUMN_ITCONC:</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"> != </span><span class="constant-syntax">1</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">"wrong col arity"</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">P</span><span class="plain-syntax">-></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_KIND_IFLD</span><span class="plain-syntax">] == </span><span class="constant-syntax">0</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">"no listed kind"</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="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::symbol</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">-></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_KIND_IFLD</span><span class="plain-syntax">], </span><span class="constant-syntax">KIND_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#SP1" class="function-link"><span class="function-syntax">Inter::Verify::TID</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">-></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_KIND_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="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">DESCRIPTION_IDT:</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"> != </span><span class="constant-syntax">1</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">"wrong desc arity"</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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">DESCRIPTION_ITCONC:</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"> != </span><span class="constant-syntax">1</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">"wrong desc arity"</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">P</span><span class="plain-syntax">-></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_KIND_IFLD</span><span class="plain-syntax">] == </span><span class="constant-syntax">0</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">"no listed kind"</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="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::symbol</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">-></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_KIND_IFLD</span><span class="plain-syntax">], </span><span class="constant-syntax">KIND_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#SP1" class="function-link"><span class="function-syntax">Inter::Verify::TID</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">-></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_KIND_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="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">RELATION_IDT:</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"> != </span><span class="constant-syntax">2</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">"wrong relation arity"</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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">RELATION_ITCONC:</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"> != </span><span class="constant-syntax">2</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">"wrong relation arity"</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">P</span><span class="plain-syntax">-></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_KIND_IFLD</span><span class="plain-syntax">] == </span><span class="constant-syntax">0</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">"no listed kind"</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="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::symbol</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">-></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_KIND_IFLD</span><span class="plain-syntax">], </span><span class="constant-syntax">KIND_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#SP1" class="function-link"><span class="function-syntax">Inter::Verify::TID</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">-></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_KIND_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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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_KIND_IFLD</span><span class="plain-syntax">+1] == </span><span class="constant-syntax">0</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">"no listed kind"</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="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::symbol</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">-></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_KIND_IFLD</span><span class="plain-syntax">+1], </span><span class="constant-syntax">KIND_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#SP1" class="function-link"><span class="function-syntax">Inter::Verify::TID</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">-></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_KIND_IFLD</span><span class="plain-syntax">+1]); </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">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">FUNCTION_IDT:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">RULE_IDT:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">FUNCTION_ITCONC:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">RULE_ITCONC:</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"> < </span><span class="constant-syntax">2</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">"function arity too low"</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">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">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">P</span><span class="plain-syntax">-></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_KIND_IFLD</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">i</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">arity</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">)) || (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> == </span><span class="identifier-syntax">arity</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">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">"no listed kind"</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">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-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::symbol</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">-></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_KIND_IFLD</span><span class="plain-syntax"> + </span><span class="identifier-syntax">i</span><span class="plain-syntax">], </span><span class="constant-syntax">KIND_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#SP1" class="function-link"><span class="function-syntax">Inter::Verify::TID</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">-></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_KIND_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="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">STRUCT_IDT:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">STRUCT_ITCONC:</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"> == </span><span class="constant-syntax">0</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">"struct arity too low"</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">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">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#SP1" class="function-link"><span class="function-syntax">Inter::Verify::symbol</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">-></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_KIND_IFLD</span><span class="plain-syntax"> + </span><span class="identifier-syntax">i</span><span class="plain-syntax">], </span><span class="constant-syntax">KIND_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#SP1" class="function-link"><span class="function-syntax">Inter::Verify::TID</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">-></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_KIND_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="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
|
@ -314,70 +243,13 @@ function togglePopup(material_id) {
|
|||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Kind::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">Inter::Kind::write</span></span>:<br/><a href="4-tkc.html#SP1">§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="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_KIND_IFLD</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_data_type</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idt</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP3" class="function-link"><span class="function-syntax">Inter::Types::find_by_ID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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_KIND_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">symb</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">idt</span><span 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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"kind %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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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_KIND_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">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_KIND_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">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="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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_KIND_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">LIST_IDT:</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">conts_kind</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">OPERANDS_KIND_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">"list of %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">conts_kind</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="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">RULEBOOK_IDT:</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">conts_kind</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">OPERANDS_KIND_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">"rulebook of %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">conts_kind</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="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">COLUMN_IDT:</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">conts_kind</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">OPERANDS_KIND_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">"column of %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">conts_kind</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="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">DESCRIPTION_IDT:</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">conts_kind</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">OPERANDS_KIND_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">"description of %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">conts_kind</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="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">RELATION_IDT:</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">X_kind</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">OPERANDS_KIND_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">Y_kind</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">OPERANDS_KIND_IFLD</span><span class="plain-syntax">+1);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"relation of %S to %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">X_kind</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">Y_kind</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="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">FUNCTION_IDT:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">RULE_IDT:</span><span 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="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_KIND_IFLD</span><span class="plain-syntax">] == </span><span class="constant-syntax">FUNCTION_IDT</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">"function"</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">"rule"</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">-></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_KIND_IFR</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">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">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">i</span><span class="plain-syntax"> == </span><span class="identifier-syntax">arity</span><span class="plain-syntax"> - </span><span class="constant-syntax">1</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">P</span><span class="plain-syntax">-></span><span class="element-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">instruction</span><span class="plain-syntax">[</span><span class="constant-syntax">OPERANDS_KIND_IFLD</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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"void"</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</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">OPERANDS_KIND_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">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">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">break</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">STRUCT_IDT:</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">"struct"</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">-></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_KIND_IFR</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</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">OPERANDS_KIND_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">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">K</span><span class="plain-syntax">));</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="identifier-syntax">default:</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><span class="identifier-syntax">idt</span><span class="plain-syntax">-></span><span class="element-syntax">reserved_word</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP18" class="function-link"><span class="function-syntax">InterTypes::write_type_name_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 kind"</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>
|
||||
|
@ -399,52 +271,45 @@ function togglePopup(material_id) {
|
|||
<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">-></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_KIND_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">Inter::Kind::constructor</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">Inter::Kind::constructor</span></span>:<br/>The Constant Construct - <a href="4-tcc2.html#SP2">§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">kind_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">kind_symbol</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">kind_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">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">-></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_KIND_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">Inter::Kind::arity</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">Inter::Kind::arity</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP7">§7</a><br/>The Constant Construct - <a href="4-tcc2.html#SP2">§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">kind_symbol</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Kind::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">Inter::Kind::arity</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP13">§13</a>, <a href="3-idt.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_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">kind_symbol</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">kind_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">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">-></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_KIND_IFR</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">Inter::Kind::operand_symbol</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">Inter::Kind::operand_symbol</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_symbol</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">kind_symbol</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="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Kind::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">Inter::Kind::operand_type</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP13">§13</a>, <a href="3-idt.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_symbol</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">kind_symbol</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::untyped</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">kind_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">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">i</span><span class="plain-syntax"> >= </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></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_KIND_IFR</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="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">CID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></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_KIND_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">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::untyped</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"> >= </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></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_KIND_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::untyped</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">-></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_KIND_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#SP11" 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="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">CID</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="reserved-syntax">inter_data_type</span><span class="plain-syntax"> *</span><span class="function-syntax">Inter::Kind::data_type</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">Inter::Kind::data_type</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP7">§7</a><br/>The Instance Construct - <a href="4-tic.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§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">kind_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">kind_symbol</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">unchecked_idt</span><span class="plain-syntax">;</span>
|
||||
<span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Kind::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">Inter::Kind::constructor</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP10">§10</a>, <a href="3-idt.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_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">kind_symbol</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">kind_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">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">unchecked_idt</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#SP3" class="function-link"><span class="function-syntax">Inter::Types::find_by_ID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">-></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_KIND_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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></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_KIND_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">Inter::Kind::next_enumerated_value</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">Inter::Kind::next_enumerated_value</span></span>:<br/>The Instance Construct - <a href="4-tic.html#SP2">§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">kind_symbol</span><span class="plain-syntax">) {</span>
|
||||
<span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Kind::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">Inter::Kind::next_enumerated_value</span></span>:<br/>The Instance Construct - <a href="4-tic.html#SP2">§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">kind_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">kind_symbol</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">kind_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">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">-></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_KIND_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">Inter::Kind::super</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">Inter::Kind::super</span></span>:<br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§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">kind_symbol</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">Inter::Kind::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">Inter::Kind::super</span></span>:<br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§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">kind_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">kind_symbol</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">kind_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">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_KIND_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">Inter::Kind::is</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">Inter::Kind::is</span></span>:<br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§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">kind_symbol</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Kind::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">Inter::Kind::is</span></span>:<br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§2</a><br/>The Permission Construct - <a href="4-tpc6.html#SP2">§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">kind_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">kind_symbol</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">kind_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">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>
|
||||
|
@ -452,10 +317,10 @@ 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">int</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Kind::is_a</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">Inter::Kind::is_a</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K1</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K2</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_data_type</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idt1</span><span class="plain-syntax"> = </span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::data_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_data_type</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idt2</span><span class="plain-syntax"> = </span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::data_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">idt1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">unchecked_idt</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">idt2</span><span class="plain-syntax"> == </span><span class="identifier-syntax">unchecked_idt</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Kind::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">Inter::Kind::is_a</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP19">§19</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K1</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K2</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">K1</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">K2</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_untyped</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_untyped</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">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">K2</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">K1</span><span class="plain-syntax"> = </span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::super</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K1</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -107,7 +107,7 @@ function togglePopup(material_id) {
|
|||
<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="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">prop_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::parse</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">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">prop_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP17" 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">prop_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>
|
||||
|
@ -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">Inter::Property::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">PID</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">prop_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_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_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="identifier-syntax">PID</span><span class="plain-syntax">, </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::to_TID</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="identifier-syntax">L1</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">PROPERTY_IST</span><span class="plain-syntax">, </span><span class="identifier-syntax">PID</span><span class="plain-syntax">, </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_wrt_bookmark</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="identifier-syntax">L1</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-ic.html#SP12" class="function-link"><span class="function-syntax">InterConstruct::verify_construct</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>
|
||||
|
@ -135,7 +135,7 @@ function togglePopup(material_id) {
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Property::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">Inter::Property::verify</span></span>:<br/><a href="4-tpc4.html#SP1">§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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax"> != </span><span class="constant-syntax">EXTENT_PROP_IFR</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">"extent wrong"</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="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::defn</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">DEFN_PROP_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><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::verify_type_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_PROP_IFLD</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::typed_data</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_PROP_IFLD</span><span class="plain-syntax">, -1, </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="function-syntax">Inter::Property::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">Inter::Property::permissions_list</span></span>:<br/>The Permission Construct - <a href="4-tpc6.html#SP2">§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">prop_name</span><span class="plain-syntax">) {</span>
|
||||
|
@ -149,18 +149,18 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop_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_PROP_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">prop_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">"property "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::write_type_field</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_PROP_IFLD</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::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_PROP_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">prop_name</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">prop_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 property"</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_type</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Property::type_of</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">Inter::Property::type_of</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP5">§5</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§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">prop_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">prop_symbol</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#SP7" class="function-link"><span class="function-syntax">Inter::Types::untyped</span></a><span class="plain-syntax">();</span>
|
||||
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Property::type_of</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">Inter::Property::type_of</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP20">§20</a><br/>The PropertyValue Construct - <a href="4-tpc5.html#SP2">§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">prop_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">prop_symbol</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::untyped</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">prop_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">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#SP7" class="function-link"><span class="function-syntax">Inter::Types::untyped</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">D</span><span class="plain-syntax">-></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">PROPERTY_IST</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::untyped</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#SP7" class="function-link"><span class="function-syntax">Inter::Types::from_TID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="constant-syntax">KIND_PROP_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><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::untyped</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">D</span><span class="plain-syntax">-></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">PROPERTY_IST</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::untyped</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#SP14" class="function-link"><span class="function-syntax">InterTypes::from_TID_in_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="constant-syntax">KIND_PROP_IFLD</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
|
|
|
@ -123,7 +123,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">val_type</span><span class="plain-syntax"> = </span><a href="4-tpc4.html#SP2" class="function-link"><span class="function-syntax">Inter::Property::type_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prop_name</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">con_val1</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">con_val2</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-idt.html#SP5" class="function-link"><span class="function-syntax">Inter::Types::read_data_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">val_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">con_val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">con_val2</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="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-ivp.html#SP4" class="function-link"><span class="function-syntax">InterValuePairs::parse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">val_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">con_val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">con_val2</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">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-tpc5.html#SP2" class="function-link"><span class="function-syntax">Inter::PropertyValue::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><a href="2-st.html#SP17" 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_name</span><span class="plain-syntax">), </span><a href="2-st.html#SP17" 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_name</span><span class="plain-syntax">),</span>
|
||||
|
@ -218,7 +218,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_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">OWNER_PVAL_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">prop_name</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">owner_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">"propertyvalue %S %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">prop_name</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">owner_name</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP4" class="function-link"><span class="function-syntax">Inter::Types::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><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">DVAL1_PVAL_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">DVAL2_PVAL_IFLD</span><span class="plain-syntax">], </span><a href="2-pck.html#SP11" 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">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ivp.html#SP2" class="function-link"><span class="function-syntax">InterValuePairs::write</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">P</span><span class="plain-syntax">-></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">DVAL1_PVAL_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">DVAL2_PVAL_IFLD</span><span class="plain-syntax">], </span><a href="2-pck.html#SP11" 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">FALSE</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 propertyvalue"</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>
|
||||
</pre>
|
||||
|
|
|
@ -109,7 +109,7 @@ function togglePopup(material_id) {
|
|||
<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="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::is</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_name</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#SP3" class="function-link"><span class="function-syntax">Inter::Types::is_enumerated</span></a><span class="plain-syntax">(</span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::data_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_name</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#SP19" 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_name</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#SP1" class="function-link"><span class="function-syntax">Inter::Errors::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="identifier-syntax">ilp</span><span class="plain-syntax">-></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="reserved-syntax">return</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>
|
||||
|
@ -181,7 +181,7 @@ function togglePopup(material_id) {
|
|||
<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-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::is</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_name</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#SP3" class="function-link"><span class="function-syntax">Inter::Types::is_enumerated</span></a><span class="plain-syntax">(</span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::data_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_name</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#SP19" 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_name</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="reserved-syntax">return</span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">FL</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">P</span><span class="plain-syntax">, </span><a href="4-tkc.html#SP2" class="function-link"><span class="function-syntax">Inter::Kind::permissions_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">owner_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">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>
|
||||
|
|
|
@ -107,7 +107,7 @@ function togglePopup(material_id) {
|
|||
<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="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#SP7" class="function-link"><span class="function-syntax">Inter::Types::parse</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">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#SP17" 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>
|
||||
|
@ -117,14 +117,14 @@ function togglePopup(material_id) {
|
|||
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">var_val1</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">var_val2</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-idt.html#SP5" class="function-link"><span class="function-syntax">Inter::Types::read_data_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">-></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">var_val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">var_val2</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="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="3-ivp.html#SP4" class="function-link"><span class="function-syntax">InterValuePairs::parse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">-></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">var_val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">var_val2</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">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">Inter::Variable::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><a href="2-st.html#SP17" 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">var_val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_val2</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">-></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">Inter::Variable::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="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">var_val1</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">var_val2</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#SP7" class="function-link"><span class="function-syntax">Inter::Types::to_TID</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">var_val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_val2</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_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_wrt_bookmark</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">var_val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_val2</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-ic.html#SP12" class="function-link"><span class="function-syntax">InterConstruct::verify_construct</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>
|
||||
|
@ -134,26 +134,26 @@ function togglePopup(material_id) {
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Variable::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">Inter::Variable::verify</span></span>:<br/><a href="4-tvc.html#SP1">§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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax"> != </span><span class="constant-syntax">EXTENT_VAR_IFR</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">"extent wrong"</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="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::defn</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">DEFN_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><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::verify_type_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="constant-syntax">VAL1_VAR_IFLD</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-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::typed_data</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="constant-syntax">VAL1_VAR_IFLD</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Variable::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">Inter::Variable::write</span></span>:<br/><a href="4-tvc.html#SP1">§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="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">var_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">"variable "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::write_type_field</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><a href="3-idt.html#SP18" class="function-link"><span class="function-syntax">InterTypes::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-idt.html#SP4" class="function-link"><span class="function-syntax">Inter::Types::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><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL1_VAR_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL2_VAR_IFLD</span><span class="plain-syntax">], </span><a href="2-pck.html#SP11" 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">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ivp.html#SP2" class="function-link"><span class="function-syntax">InterValuePairs::write</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">P</span><span class="plain-syntax">-></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">VAL1_VAR_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL2_VAR_IFLD</span><span class="plain-syntax">], </span><a href="2-pck.html#SP11" 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">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="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Variable::type_of</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">Inter::Variable::type_of</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_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">con_symbol</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#SP7" class="function-link"><span class="function-syntax">Inter::Types::untyped</span></a><span class="plain-syntax">();</span>
|
||||
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Variable::type_of</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">Inter::Variable::type_of</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP20">§20</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_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">con_symbol</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::untyped</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">con_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">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#SP7" class="function-link"><span class="function-syntax">Inter::Types::untyped</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">D</span><span class="plain-syntax">-></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-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::untyped</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#SP7" class="function-link"><span class="function-syntax">Inter::Types::from_TID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</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="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::untyped</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">D</span><span class="plain-syntax">-></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-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::untyped</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#SP14" class="function-link"><span class="function-syntax">InterTypes::from_TID_in_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="constant-syntax">KIND_VAR_IFLD</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
|
|
|
@ -124,8 +124,8 @@ function togglePopup(material_id) {
|
|||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Cast::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">Inter::Cast::verify</span></span>:<br/><a href="5-tcc2.html#SP1">§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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax"> != </span><span class="constant-syntax">EXTENT_CAST_IFR</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">"extent wrong"</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="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::symbol</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">-></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">TO_KIND_CAST_IFLD</span><span class="plain-syntax">], </span><span class="constant-syntax">KIND_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#SP1" class="function-link"><span class="function-syntax">Inter::Verify::symbol</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">-></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">FROM_KIND_CAST_IFLD</span><span class="plain-syntax">], </span><span class="constant-syntax">KIND_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#SP1" class="function-link"><span class="function-syntax">Inter::Verify::TID</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">-></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">TO_KIND_CAST_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#SP1" class="function-link"><span class="function-syntax">Inter::Verify::TID</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">-></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">FROM_KIND_CAST_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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Cast::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">Inter::Cast::write</span></span>:<br/><a href="5-tcc2.html#SP1">§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>
|
||||
|
|
|
@ -110,7 +110,7 @@ function togglePopup(material_id) {
|
|||
<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="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#SP7" class="function-link"><span class="function-syntax">Inter::Types::parse</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">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#SP17" 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><span class="identifier-syntax">locals</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>
|
||||
|
@ -124,7 +124,7 @@ function togglePopup(material_id) {
|
|||
|
||||
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">Inter::Local::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_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#SP17" 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#SP7" class="function-link"><span class="function-syntax">Inter::Types::to_TID</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#SP17" 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_wrt_bookmark</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-ic.html#SP12" class="function-link"><span class="function-syntax">InterConstruct::verify_construct</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><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -135,7 +135,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">locals</span><span class="plain-syntax"> = </span><a href="2-pck.html#SP9" 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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">locals</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</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">"no symbols table in function"</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="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::local_defn</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">DEFN_LOCAL_IFLD</span><span class="plain-syntax">, </span><span class="identifier-syntax">locals</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-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::verify_type_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_LOCAL_IFLD</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::typed_data</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_LOCAL_IFLD</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">E</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">Inter::Local::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">Inter::Local::write</span></span>:<br/><a href="5-tlc2.html#SP1">§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>
|
||||
|
@ -143,18 +143,18 @@ function togglePopup(material_id) {
|
|||
<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_in_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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_LOCAL_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">var_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">"local "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::write_type_field</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_LOCAL_IFLD</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::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_LOCAL_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="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 local"</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_type</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Local::type_of</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">Inter::Local::type_of</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_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">con_symbol</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#SP7" class="function-link"><span class="function-syntax">Inter::Types::untyped</span></a><span class="plain-syntax">();</span>
|
||||
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Local::type_of</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">Inter::Local::type_of</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP20">§20</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_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">con_symbol</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::untyped</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">con_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">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#SP7" class="function-link"><span class="function-syntax">Inter::Types::untyped</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">D</span><span class="plain-syntax">-></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">LOCAL_IST</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::untyped</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#SP7" class="function-link"><span class="function-syntax">Inter::Types::from_TID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="constant-syntax">KIND_LOCAL_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><a href="3-idt.html#SP12" class="function-link"><span class="function-syntax">InterTypes::untyped</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">D</span><span class="plain-syntax">-></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">LOCAL_IST</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::untyped</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#SP14" class="function-link"><span class="function-syntax">InterTypes::from_TID_in_field</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="constant-syntax">KIND_LOCAL_IFLD</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
|
|
|
@ -115,19 +115,19 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">value_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="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">ref_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::parse</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">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">ref_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP17" 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="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">var_val1</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">var_val2</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-idt.html#SP5" class="function-link"><span class="function-syntax">Inter::Types::read_data_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">ref_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">value_text</span><span class="plain-syntax">, &</span><span class="identifier-syntax">var_val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">var_val2</span><span class="plain-syntax">, </span><span class="identifier-syntax">locals</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-ivp.html#SP4" class="function-link"><span class="function-syntax">InterValuePairs::parse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">ref_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">value_text</span><span class="plain-syntax">, &</span><span class="identifier-syntax">var_val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">var_val2</span><span class="plain-syntax">, </span><span class="identifier-syntax">locals</span><span 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="5-trc.html#SP2" class="function-link"><span class="function-syntax">Inter::Ref::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">ref_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></span><span class="element-syntax">indent_level</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">var_val2</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">Inter::Ref::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_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">ref_type</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val2</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">REF_IST</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::to_TID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">ref_type</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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_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">REF_IST</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_wrt_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">ref_type</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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-ic.html#SP12" class="function-link"><span class="function-syntax">InterConstruct::verify_construct</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><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -135,7 +135,7 @@ function togglePopup(material_id) {
|
|||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Ref::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">Inter::Ref::verify</span></span>:<br/><a href="5-trc.html#SP1">§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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax"> != </span><span class="constant-syntax">EXTENT_REF_IFR</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">"extent wrong"</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#SP7" class="function-link"><span class="function-syntax">Inter::Types::verify_type_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_REF_IFLD</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_REF_IFLD</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-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::typed_data</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_REF_IFLD</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_REF_IFLD</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Ref::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">Inter::Ref::write</span></span>:<br/><a href="5-trc.html#SP1">§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>
|
||||
|
@ -143,8 +143,8 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">locals</span><span class="plain-syntax"> = </span><a href="2-pck.html#SP9" 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">locals</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</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">"function has no symbols table"</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"ref "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::write_type_field</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_REF_IFLD</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP4" class="function-link"><span class="function-syntax">Inter::Types::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><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL1_REF_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL2_REF_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">locals</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</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::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_REF_IFLD</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ivp.html#SP2" class="function-link"><span class="function-syntax">InterValuePairs::write</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">P</span><span class="plain-syntax">-></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">VAL1_REF_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL2_REF_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">locals</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
|
|
|
@ -116,7 +116,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">value_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="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">val_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::parse</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">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">val_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP17" 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="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
|
@ -125,9 +125,9 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_as_value</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">value_text</span><span class="plain-syntax">, </span><span class="constant-syntax">KIND_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">kind_as_value</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><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::symbol_to_pair</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><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">kind_as_value</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val2</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::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><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">kind_as_value</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val2</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-idt.html#SP5" class="function-link"><span class="function-syntax">Inter::Types::read_data_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">val_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">value_text</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val2</span><span class="plain-syntax">, </span><span class="identifier-syntax">locals</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-ivp.html#SP4" class="function-link"><span class="function-syntax">InterValuePairs::parse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ilp</span><span class="plain-syntax">-></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">val_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">value_text</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val2</span><span class="plain-syntax">, </span><span class="identifier-syntax">locals</span><span 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>
|
||||
|
||||
|
@ -136,27 +136,27 @@ function togglePopup(material_id) {
|
|||
|
||||
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">Inter::Val::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_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">val_type</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">level</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val2</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">VAL_IST</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::to_TID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">val_type</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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_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">VAL_IST</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID_wrt_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">val_type</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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-ic.html#SP12" class="function-link"><span class="function-syntax">InterConstruct::verify_construct</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><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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Val::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">Inter::Val::transpose</span></span>:<br/><a href="5-tvc.html#SP1">§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="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL2_VAL_IFLD</span><span class="plain-syntax">] = </span><a href="3-idt.html#SP3" class="function-link"><span class="function-syntax">Inter::Types::transpose_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL1_VAL_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL2_VAL_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="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL2_VAL_IFLD</span><span class="plain-syntax">] = </span><a href="3-ivp.html#SP5" class="function-link"><span class="function-syntax">InterValuePairs::transpose_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL1_VAL_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL2_VAL_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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Val::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">Inter::Val::verify</span></span>:<br/><a href="5-tvc.html#SP1">§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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="element-syntax">extent</span><span class="plain-syntax"> != </span><span class="constant-syntax">EXTENT_VAL_IFR</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">"extent wrong"</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#SP7" class="function-link"><span class="function-syntax">Inter::Types::verify_type_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_VAL_IFLD</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_VAL_IFLD</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-vi.html#SP1" class="function-link"><span class="function-syntax">Inter::Verify::typed_data</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_VAL_IFLD</span><span class="plain-syntax">, </span><span class="constant-syntax">VAL1_VAL_IFLD</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inter::Val::write</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">Inter::Val::write</span></span>:<br/><a href="5-tvc.html#SP1">§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="plain-syntax"> </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">locals</span><span class="plain-syntax"> = </span><a href="2-pck.html#SP11" 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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">locals</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</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">"function has no symbols table"</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"val "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP7" class="function-link"><span class="function-syntax">Inter::Types::write_type_field</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_VAL_IFLD</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP4" class="function-link"><span class="function-syntax">Inter::Types::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><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL1_VAL_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL2_VAL_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">locals</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</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::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_VAL_IFLD</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ivp.html#SP2" class="function-link"><span class="function-syntax">InterValuePairs::write</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">P</span><span class="plain-syntax">-></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">VAL1_VAL_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">VAL2_VAL_IFLD</span><span class="plain-syntax">], </span><span class="identifier-syntax">locals</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
|
|
|
@ -180,6 +180,11 @@
|
|||
<spon class="sectiontitle">Verifying Inter</span></a> -
|
||||
<span class="sectionpurpose">Verifying that a chunk of inter is correct and consistent.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-ivp.html">
|
||||
<spon class="sectiontitle">Inter Value Pairs</span></a> -
|
||||
<span class="sectionpurpose">Two consecutive bytecode words are used to store a single value in binary Inter.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-idt.html">
|
||||
<spon class="sectiontitle">Inter Data Types</span></a> -
|
||||
|
|
|
@ -568,7 +568,7 @@ extracted from some Inter instruction.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax"> = </span><a href="2-cg.html#SP12" class="function-link"><span class="function-syntax">CodeGen::current</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">val1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-cg2.html#SP19" class="function-link"><span class="function-syntax">Generators::compile_literal_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inter::Types::pair_holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">InterValuePairs::holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">InterSymbolsTable::symbol_from_data_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">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">"bad symbol in Inter pair"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-cg2.html#SP19" class="function-link"><span class="function-syntax">Generators::compile_literal_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">s</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -315,7 +315,7 @@ that, it will have to make other arrangements.
|
|||
<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">bracket</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">i</span><span class="plain-syntax">] == </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Inter::Types::pair_holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">instruction</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">-></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">i</span><span class="plain-syntax">+1]))) </span><span class="identifier-syntax">bracket</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">InterValuePairs::holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">instruction</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">-></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">i</span><span class="plain-syntax">+1]))) </span><span class="identifier-syntax">bracket</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">bracket</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="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">P</span><span class="plain-syntax">-></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">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">+1]);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bracket</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>
|
||||
|
|
|
@ -208,7 +208,7 @@ a variable here.
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">VanillaCode::val_or_ref</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">VanillaCode::val_or_ref</span></span>:<br/>Vanilla - <a href="2-vnl.html#SP3">§3</a></span></button><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="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">ref</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">val1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">VAL1_VAL_IFLD</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">val2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">VAL2_VAL_IFLD</span><span class="plain-syntax">];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inter::Types::pair_holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">InterValuePairs::holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">InterPackage::container</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">named_s</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::symbol_from_ID_in_package</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -231,7 +231,7 @@ in some way by the generator. (As indeed the C generator does, mangling this to
|
|||
<span class="plain-syntax"> (</span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">FORMAT_CONST_IFLD</span><span class="plain-syntax">] == </span><span class="identifier-syntax">CONSTANT_DIRECT</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">val1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</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">val2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</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">Inter::Types::pair_holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">InterValuePairs::holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">InterSymbolsTable::symbol_from_data_pair</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterPackage::scope_of</span><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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">S</span><span class="plain-syntax">) </span><span class="identifier-syntax">fn_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">S</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -569,7 +569,7 @@ The opening byte gives some metadata bits, and then there's a word.
|
|||
<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">VanillaIF::get_symbol</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">VanillaIF::get_symbol</span></span>:<br/><a href="2-vi.html#SP8_1">§8.1</a>, <a href="2-vi.html#SP8_2_1">§8.2.1</a>, <a href="2-vi.html#SP8_2_2">§8.2.2</a>, <a href="2-vi.html#SP8_2_2_1">§8.2.2.1</a></span></button><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="identifier-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">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val2</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inter::Types::pair_holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">InterValuePairs::holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::symbol_from_data_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterPackage::scope_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">));</span>
|
||||
|
|
|
@ -701,7 +701,7 @@ news for, say, the C generator.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">object_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RunningPipelines::get_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">gen</span><span class="plain-syntax">-></span><span class="element-syntax">from_step</span><span class="plain-syntax">, </span><span class="identifier-syntax">object_kind_RPSYM</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">object_kind</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">kind_s</span><span class="plain-syntax"> == </span><span class="identifier-syntax">object_kind</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">Inter::Kind::data_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_s</span><span class="plain-syntax">) == </span><span class="identifier-syntax">unchecked_idt</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">InterTypes::is_untyped</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterTypes::from_type_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_s</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">Inter::Kind::is_a</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">object_kind</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>
|
||||
|
|
|
@ -250,7 +250,7 @@ they were any other arrays. Here goes:
|
|||
<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="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="function-syntax"><P-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">extent</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">+2) {</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">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">val2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">+1];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inter::Types::pair_holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">InterValuePairs::holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTable::symbol_from_data_pair</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterPackage::scope_of</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">A</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">"bad aliased symbol"</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -987,7 +987,7 @@ See <a href="2-vo.html" class="internal">Vanilla Objects</a> for more on inner n
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prop_node</span><span class="plain-syntax">-></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="identifier-syntax">VAL_IST</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">val1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">prop_node</span><span class="plain-syntax">-></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">VAL1_VAL_IFLD</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">val2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">prop_node</span><span class="plain-syntax">-></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">VAL2_VAL_IFLD</span><span class="plain-syntax">];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inter::Types::pair_holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">InterValuePairs::holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">prop_symbol</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::symbol_from_ID</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterPackage::scope_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop_node</span><span class="plain-syntax">), </span><span class="identifier-syntax">val2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -1028,7 +1028,7 @@ and the property is stored in a VM-property;
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kind_node</span><span class="plain-syntax">-></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="identifier-syntax">VAL_IST</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">val1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">kind_node</span><span class="plain-syntax">-></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">VAL1_VAL_IFLD</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">val2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">kind_node</span><span class="plain-syntax">-></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">VAL2_VAL_IFLD</span><span class="plain-syntax">];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inter::Types::pair_holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">InterValuePairs::holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind_symbol</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::symbol_from_ID</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterPackage::scope_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind_node</span><span class="plain-syntax">), </span><span class="identifier-syntax">val2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -1039,7 +1039,7 @@ and the property is stored in a VM-property;
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prop_node</span><span class="plain-syntax">-></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="identifier-syntax">VAL_IST</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">val1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">prop_node</span><span class="plain-syntax">-></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">VAL1_VAL_IFLD</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">val2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">prop_node</span><span class="plain-syntax">-></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">VAL2_VAL_IFLD</span><span class="plain-syntax">];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inter::Types::pair_holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">InterValuePairs::holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">prop_symbol</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::symbol_from_ID</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterPackage::scope_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop_node</span><span class="plain-syntax">), </span><span class="identifier-syntax">val2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
|
@ -577,7 +577,7 @@ we must use the pecualiar I6 syntax here to get the right outcome.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</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-cg.html#SP11" class="function-link"><span class="function-syntax">CodeGen::select_temporary</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">gen</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">inline_this</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inter::Types::pair_holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">InterValuePairs::holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">InterSymbolsTable::symbol_from_data_pair_at_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">S</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">SymbolAnnotation::get_b</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">INLINE_ARRAY_IANN</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">InterSymbol::definition</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -667,7 +667,7 @@ first entry at all. We'll simply zero it.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val2</span><span class="plain-syntax">, </span><span class="identifier-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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">inline_this</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inter::Types::pair_holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">InterValuePairs::holds_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">InterSymbolsTable::symbol_from_data_pair_at_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">S</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">SymbolAnnotation::get_b</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">INLINE_ARRAY_IANN</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inline_this</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -156,7 +156,7 @@ base data type matches this".
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(&</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">Inter::Kind::new</span><span class="plain-syntax">(&</span><span class="identifier-syntax">in_generic_kinds</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_IDT</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">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">(&</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>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ns.html#SP1">§1</a>.</li></ul>
|
||||
|
@ -177,7 +177,7 @@ base data type matches this".
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(&</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">Inter::Kind::new</span><span class="plain-syntax">(&</span><span class="identifier-syntax">in_generic_kinds</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_IDT</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">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">(&</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>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ns.html#SP1">§1</a>.</li></ul>
|
||||
|
@ -198,7 +198,7 @@ base data type matches this".
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(&</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">Inter::Kind::new</span><span class="plain-syntax">(&</span><span class="identifier-syntax">in_generic_kinds</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_IDT</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">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">(&</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>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ns.html#SP1">§1</a>.</li></ul>
|
||||
|
@ -216,7 +216,7 @@ end up being basically the same thing.)
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(&</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">Inter::Kind::new</span><span class="plain-syntax">(&</span><span class="identifier-syntax">in_generic_kinds</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_IDT</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">(&</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>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ns.html#SP1">§1</a>.</li></ul>
|
||||
|
@ -229,7 +229,7 @@ end up being basically the same thing.)
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(&</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">Inter::Kind::new</span><span class="plain-syntax">(&</span><span class="identifier-syntax">in_generic_kinds</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_IDT</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">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">(&</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>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ns.html#SP1">§1</a>.</li></ul>
|
||||
|
@ -242,7 +242,7 @@ end up being basically the same thing.)
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterBookmark::scope</span><span class="plain-syntax">(&</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">Inter::Kind::new</span><span class="plain-syntax">(&</span><span class="identifier-syntax">in_generic_kinds</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_IDT</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">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">(&</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>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ns.html#SP1">§1</a>.</li></ul>
|
||||
|
|
|
@ -522,7 +522,7 @@ 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">v1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="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">Inter::Variable::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="identifier-syntax">Inter::Types::untyped</span><span class="plain-syntax">(), </span><span class="identifier-syntax">v1</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax">, </span><span class="identifier-syntax">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">Inter::Variable::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="identifier-syntax">InterTypes::untyped</span><span class="plain-syntax">(), </span><span class="identifier-syntax">v1</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax">, </span><span class="identifier-syntax">B</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-css.html#SP3_1_3_1_4">§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>§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>
|
||||
|
@ -531,7 +531,7 @@ not already there.
|
|||
<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">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Property::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="identifier-syntax">Inter::Types::untyped</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">Inter::Property::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="identifier-syntax">InterTypes::untyped</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>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-css.html#SP3_1_3_1_4">§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>§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>
|
||||
|
@ -541,7 +541,7 @@ not already there.
|
|||
<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">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Property::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">Inter::Types::from_symbol</span><span class="plain-syntax">(</span><a href="2-rp.html#SP5" class="function-link"><span class="function-syntax">RunningPipelines::get_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="constant-syntax">truth_state_kind_RPSYM</span><span class="plain-syntax">)),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterTypes::from_type_name</span><span class="plain-syntax">(</span><a href="2-rp.html#SP5" class="function-link"><span class="function-syntax">RunningPipelines::get_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="constant-syntax">truth_state_kind_RPSYM</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>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-css.html#SP3_1_3_1_4">§3.1.3.1.4</a>.</li></ul>
|
||||
|
@ -978,7 +978,7 @@ which contains the actual code.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTable::create_with_unique_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterPackage::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">IP</span><span class="plain-syntax">), </span><span class="identifier-syntax">value</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbol::make_local</span><span class="plain-syntax">(</span><span class="identifier-syntax">loc_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">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">Inter::Local::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">loc_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">Inter::Types::untyped</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">Inter::Local::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">loc_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterTypes::untyped</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">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
|
@ -1239,59 +1239,59 @@ from command parser grammar: slightly different syntax applies there.
|
|||
|
||||
<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">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</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">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">verb_directive_divider_RPSYM</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_DIVIDER"</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</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">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">verb_directive_result_RPSYM</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_RESULT"</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"reverse"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">verb_directive_reverse_RPSYM</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_REVERSE"</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</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">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">verb_directive_slash_RPSYM</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_SLASH"</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"special"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">verb_directive_special_RPSYM</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_SPECIAL"</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"number"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">verb_directive_number_RPSYM</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_NUMBER"</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"noun"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">verb_directive_noun_RPSYM</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_NOUN"</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"multi"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">verb_directive_multi_RPSYM</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_MULTI"</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"multiinside"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">verb_directive_multiinside_RPSYM</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_MULTIINSIDE"</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"multiheld"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">verb_directive_multiheld_RPSYM</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_MULTIHELD"</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"held"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">verb_directive_held_RPSYM</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_HELD"</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"creature"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">verb_directive_creature_RPSYM</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_CREATURE"</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"topic"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">verb_directive_topic_RPSYM</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_TOPIC"</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"multiexcept"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><a href="2-rp.html#SP6" class="function-link"><span class="function-syntax">RunningPipelines::ensure_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">verb_directive_multiexcept_RPSYM</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_MULTIEXCEPT"</span><span class="plain-syntax">), </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">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>
|
||||
|
@ -1300,7 +1300,7 @@ from command parser grammar: slightly different syntax applies there.
|
|||
<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">SymbolAnnotation::get_b</span><span class="plain-syntax">(</span><span class="identifier-syntax">symb</span><span class="plain-syntax">, </span><span class="identifier-syntax">SCOPE_FILTER_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="identifier-syntax">SymbolAnnotation::set_b</span><span class="plain-syntax">(</span><span class="identifier-syntax">symb</span><span class="plain-syntax">, </span><span class="identifier-syntax">SCOPE_FILTER_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">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">symb</span><span class="plain-syntax">, </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">symb</span><span class="plain-syntax">, </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"noun=(%i+)"</span><span class="plain-syntax">)) {</span>
|
||||
|
@ -1308,7 +1308,7 @@ from command parser grammar: slightly different syntax applies there.
|
|||
<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">SymbolAnnotation::get_b</span><span class="plain-syntax">(</span><span class="identifier-syntax">symb</span><span class="plain-syntax">, </span><span class="identifier-syntax">NOUN_FILTER_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="identifier-syntax">SymbolAnnotation::set_b</span><span class="plain-syntax">(</span><span class="identifier-syntax">symb</span><span class="plain-syntax">, </span><span class="identifier-syntax">NOUN_FILTER_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">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">symb</span><span class="plain-syntax">, </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">symb</span><span class="plain-syntax">, </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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>
|
||||
|
@ -1319,7 +1319,7 @@ from command parser grammar: slightly different syntax applies there.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symb</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Wiring::find_socket</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</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">symb</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">symb</span><span class="plain-syntax">, </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">symb</span><span class="plain-syntax">, </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-css.html#SP6">§6</a>.</li></ul>
|
||||
|
@ -1357,7 +1357,7 @@ before they are needed.
|
|||
<span class="plain-syntax"> </span><a href="3-css.html#SP7" class="function-link"><span class="function-syntax">CompileSplatsStage::compute_r</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">sch</span><span class="plain-syntax">-></span><span class="identifier-syntax">node_tree</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">result_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-pe.html#SP3" class="function-link"><span class="function-syntax">PipelineErrors::kit_error</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Inform 6 constant in kit too complex"</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">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">result_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">result_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-css.html#SP6">§6</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b>So this is the recursion. Note that we calculate \(-x\) as \(0 - x\), thus
|
||||
|
@ -1442,13 +1442,13 @@ But not really more efficient Inter.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pos</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pair_list</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">extent</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inode::extend_instruction_by</span><span class="plain-syntax">(</span><span class="identifier-syntax">pair_list</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">i1</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">i1</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> &(</span><span class="identifier-syntax">pair_list</span><span class="plain-syntax">-></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">pos</span><span class="plain-syntax">]), &(</span><span class="identifier-syntax">pair_list</span><span class="plain-syntax">-></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">pos</span><span class="plain-syntax">+1]));</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">pair_list</span><span class="plain-syntax">-></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">pos</span><span class="plain-syntax">] = </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">; </span><span class="identifier-syntax">pair_list</span><span class="plain-syntax">-></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">pos</span><span class="plain-syntax">+1] = </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">if</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::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</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">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</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">pair_list</span><span class="plain-syntax">-></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">pos</span><span class="plain-syntax">+2]), &(</span><span class="identifier-syntax">pair_list</span><span class="plain-syntax">-></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">pos</span><span class="plain-syntax">+3]));</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">pair_list</span><span class="plain-syntax">-></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">pos</span><span class="plain-syntax">+2] = </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">; </span><span class="identifier-syntax">pair_list</span><span class="plain-syntax">-></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">pos</span><span class="plain-syntax">+3] = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
|
@ -1483,7 +1483,7 @@ the leaves:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">v1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">UNDEF_IVAL</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">constant_number</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">v1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">; </span><span class="identifier-syntax">v2</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">constant_number</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">Inter::Types::read_int_in_I6_notation</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">material</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v2</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</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">InterValuePairs::read_int_in_I6_notation</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">material</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v2</span><span class="plain-syntax">) == </span><span class="identifier-syntax">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">NULL</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">v1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">UNDEF_IVAL</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>
|
||||
|
|
|
@ -172,9 +172,9 @@ though as it happens this transformation would work just as well either way:
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<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">InterBookmark::first_child_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterBookmark::tree</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">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterBookmark::tree</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">InterBookmark::package</span><span class="plain-syntax">(&</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">var</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Val::new</span><span class="plain-syntax">(&</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">Inter::Types::untyped</span><span class="plain-syntax">(),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Val::new</span><span class="plain-syntax">(&</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterTypes::untyped</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">F</span><span class="plain-syntax">-></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">LEVEL_IFLD</span><span class="plain-syntax">] + </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val1</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-dics.html#SP2_1">§2.1</a>.</li></ul>
|
||||
|
|
|
@ -171,7 +171,7 @@ in <span class="extract"><span class="extract-syntax">texts</span></span>.
|
|||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Wiring::wire_to</span><span class="plain-syntax">(</span><span class="identifier-syntax">ref_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">latest_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">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterPackage::container</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">), </span><span class="identifier-syntax">ref_s</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterPackage::container</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">), </span><span class="identifier-syntax">ref_s</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">FORMAT_CONST_IFLD</span><span class="plain-syntax">] = </span><span class="identifier-syntax">CONSTANT_DIRECT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">] = </span><span class="identifier-syntax">val1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">DATA_CONST_IFLD</span><span class="plain-syntax">+1] = </span><span class="identifier-syntax">val2</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -209,7 +209,7 @@ does exist, it must have a definition, and we return that.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterPackage::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">), </span><span class="identifier-syntax">InterSymbol::identifier</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">Wiring::wire_to</span><span class="plain-syntax">(</span><span class="identifier-syntax">local_S</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">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterPackage::tree</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">), </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">local_S</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterPackage::tree</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">), </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">local_S</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val2</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">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">synoptic_array_node</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">extent</span><span class="plain-syntax">-2] = </span><span class="identifier-syntax">ALIAS_IVAL</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">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">instruction</span><span class="plain-syntax">[</span><span class="identifier-syntax">synoptic_array_node</span><span class="plain-syntax">-></span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">extent</span><span class="plain-syntax">-1] = </span><span class="identifier-syntax">val2</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -409,7 +409,7 @@ names are not.
|
|||
|
||||
<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">val1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">val2</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">Inter::Types::read_int_in_I6_notation</span><span class="plain-syntax">(</span><span class="identifier-syntax">textual_description</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val2</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">InterValuePairs::read_int_in_I6_notation</span><span class="plain-syntax">(</span><span class="identifier-syntax">textual_description</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">val2</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">v1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">val1</span><span class="plain-syntax">; *</span><span class="identifier-syntax">v2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">val2</span><span class="plain-syntax">; </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
|
|
|
@ -163,7 +163,7 @@ what package it belongs to, the "context" referred to below:
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::stvp_inner</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">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">v2</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="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="identifier-syntax">Inter::Types::symbol_to_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterPackage::tree</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">), </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">v1</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">InterPackage::tree</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">), </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">v1</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">v1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">; *</span><span class="identifier-syntax">v2</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
|
@ -195,7 +195,7 @@ again to return to where we were.
|
|||
<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">KU</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">unchecked_interk</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">KU</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::kind_inner</span></a><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">unchecked_interk</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">UNCHECKED_IDT</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="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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">KUF</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">K_UNCHECKED_FUNCTION_HL</span><span class="plain-syntax">);</span>
|
||||
|
@ -205,7 +205,7 @@ again to return to where we were.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[0] = </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">unchecked_interk</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[1] = </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">unchecked_interk</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::kind_inner</span></a><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">unchecked_function_interk</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">FUNCTION_IDT</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">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">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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">KLF</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">K_UNCHECKED_LIST_HL</span><span class="plain-syntax">);</span>
|
||||
|
@ -213,25 +213,25 @@ again to return to where we were.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">unchecked_list_interk</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">KLF</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[0] = </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">unchecked_interk</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::kind_inner</span></a><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">unchecked_list_interk</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">LIST_IDT</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">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">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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">KTI</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">K_INT32_HL</span><span class="plain-syntax">);</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">KTI</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">int_interk</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">KTI</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::kind_inner</span></a><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">int_interk</span><span class="plain-syntax">), </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">INT32_IDT</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><a href="2-emt.html#SP6" class="function-link"><span class="function-syntax">Emit::kind_inner</span></a><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">int_interk</span><span class="plain-syntax">), </span><span class="constant-syntax">0</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="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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">KTB</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">K_INT2_HL</span><span class="plain-syntax">);</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">KTB</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">boolean_interk</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">KTB</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::kind_inner</span></a><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">boolean_interk</span><span class="plain-syntax">), </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">INT2_IDT</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><a href="2-emt.html#SP6" class="function-link"><span class="function-syntax">Emit::kind_inner</span></a><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">boolean_interk</span><span class="plain-syntax">), </span><span class="constant-syntax">0</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="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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">KTS</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">K_STRING_HL</span><span class="plain-syntax">);</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">KTS</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">string_interk</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">KTS</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::kind_inner</span></a><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">string_interk</span><span class="plain-syntax">), </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">TEXT_IDT</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><a href="2-emt.html#SP6" class="function-link"><span class="function-syntax">Emit::kind_inner</span></a><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">string_interk</span><span class="plain-syntax">), </span><span class="constant-syntax">0</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="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>
|
||||
</pre>
|
||||
|
@ -464,8 +464,8 @@ of a "variable" and define it as a constant:
|
|||
<span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::variable</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::variable</span></span>:<br/>Variables - <a href="5-vrb.html#SP14">§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_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">v1</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">v2</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_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">it</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Types::untyped</span><span 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</span><span class="plain-syntax"> != </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">)) </span><span class="identifier-syntax">it</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Types::from_symbol</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">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">it</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterTypes::untyped</span><span 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</span><span class="plain-syntax"> != </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">)) </span><span class="identifier-syntax">it</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">Inter::Variable::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><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">it</span><span class="plain-syntax">, </span><span class="identifier-syntax">v1</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax">, </span><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>
|
||||
|
@ -478,8 +478,8 @@ of a "variable" and define it as a constant:
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::property</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::property</span></span>:<br/>Properties - <a href="5-prp.html#SP7_1">§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">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">it</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Types::untyped</span><span 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</span><span class="plain-syntax"> != </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">)) </span><span class="identifier-syntax">it</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Types::from_symbol</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">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">it</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterTypes::untyped</span><span 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</span><span class="plain-syntax"> != </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">)) </span><span class="identifier-syntax">it</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">Inter::Property::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><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">prop_s</span><span class="plain-syntax">), </span><span class="identifier-syntax">it</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>
|
||||
|
|
|
@ -215,17 +215,17 @@ source text.
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTKindDeclarations::declare_base_kind</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">RTKindDeclarations::declare_base_kind</span></span>:<br/><a href="2-kd.html#SP7">§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">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 emit null 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">InterNames::is_defined</span><span class="plain-syntax">(</span><a href="2-kd.html#SP5" class="function-link"><span class="function-syntax">RTKindDeclarations::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</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_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">dt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">INT32_IDT</span><span 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_object</span><span class="plain-syntax">) </span><span class="identifier-syntax">dt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ENUM_IDT</span><span 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_an_enumeration</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><span class="identifier-syntax">dt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ENUM_IDT</span><span 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_truth_state</span><span class="plain-syntax">) </span><span class="identifier-syntax">dt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">INT2_IDT</span><span 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_text</span><span class="plain-syntax">) </span><span class="identifier-syntax">dt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TEXT_IDT</span><span 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_table</span><span class="plain-syntax">) </span><span class="identifier-syntax">dt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TABLE_IDT</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">dt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">INT32_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">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) </span><span class="identifier-syntax">dt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ENUM_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">Kinds::Behaviour::is_an_enumeration</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><span class="identifier-syntax">dt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ENUM_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">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">K_truth_state</span><span class="plain-syntax">) </span><span class="identifier-syntax">dt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">INT2_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">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">K_text</span><span class="plain-syntax">) </span><span class="identifier-syntax">dt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TEXT_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">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">K_table</span><span class="plain-syntax">) </span><span class="identifier-syntax">dt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TABLE_ITCONC</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">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Latticework::super</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">S</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::conforms_to</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</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="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><a href="2-kd.html#SP8" class="function-link"><span class="function-syntax">RTKindDeclarations::declare_base_kind</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">dt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ENUM_IDT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ENUM_ITCONC</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</span></a><span class="plain-syntax">(</span><a href="2-kd.html#SP5" class="function-link"><span class="function-syntax">RTKindDeclarations::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">S</span><span class="plain-syntax">?</span><a href="2-kd.html#SP5" class="function-link"><span class="function-syntax">RTKindDeclarations::iname</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="identifier-syntax">dt</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>
|
||||
|
@ -265,7 +265,7 @@ source text.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">arity</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">operands</span><span class="plain-syntax">[0] = </span><span class="identifier-syntax">Kinds::unary_construction_material</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">icon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LIST_IDT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">icon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LIST_ITCONC</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-kd.html#SP9">§9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_2" class="paragraph-anchor"></a><b>§9.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Run out inter kind for description</span><span class="named-paragraph-number">9.2</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -274,7 +274,7 @@ source text.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">arity</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">operands</span><span class="plain-syntax">[0] = </span><span class="identifier-syntax">Kinds::unary_construction_material</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">icon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">DESCRIPTION_IDT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">icon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">DESCRIPTION_ITCONC</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-kd.html#SP9">§9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_3" class="paragraph-anchor"></a><b>§9.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Run out inter kind for column</span><span class="named-paragraph-number">9.3</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -283,7 +283,7 @@ source text.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">arity</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">operands</span><span class="plain-syntax">[0] = </span><span class="identifier-syntax">Kinds::unary_construction_material</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">icon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">COLUMN_IDT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">icon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">COLUMN_ITCONC</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-kd.html#SP9">§9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_4" class="paragraph-anchor"></a><b>§9.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Run out inter kind for relation</span><span class="named-paragraph-number">9.4</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -292,14 +292,14 @@ source text.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">arity</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">Kinds::binary_construction_material</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, &</span><span class="identifier-syntax">operands</span><span class="plain-syntax">[0], &</span><span class="identifier-syntax">operands</span><span class="plain-syntax">[1]);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">icon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RELATION_IDT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">icon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RELATION_ITCONC</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-kd.html#SP9">§9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_5" class="paragraph-anchor"></a><b>§9.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Run out inter kind for phrase</span><span class="named-paragraph-number">9.5</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">icon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FUNCTION_IDT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">icon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FUNCTION_ITCONC</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">X</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">result</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">Kinds::binary_construction_material</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, &</span><span class="identifier-syntax">X</span><span class="plain-syntax">, &</span><span class="identifier-syntax">result</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">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_TUPLE_ENTRY</span><span class="plain-syntax">) {</span>
|
||||
|
@ -319,7 +319,7 @@ source text.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">arity</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">Kinds::binary_construction_material</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, &</span><span class="identifier-syntax">operands</span><span class="plain-syntax">[0], &</span><span class="identifier-syntax">operands</span><span class="plain-syntax">[1]);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">icon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RULE_IDT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">icon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RULE_ITCONC</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-kd.html#SP9">§9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_7" class="paragraph-anchor"></a><b>§9.7. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Run out inter kind for rulebook</span><span class="named-paragraph-number">9.7</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -330,7 +330,7 @@ source text.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">Y</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">Kinds::binary_construction_material</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, &</span><span class="identifier-syntax">X</span><span class="plain-syntax">, &</span><span class="identifier-syntax">Y</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">Kinds::binary_con</span><span class="plain-syntax">(</span><span class="identifier-syntax">CON_phrase</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">Y</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">icon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RULEBOOK_IDT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">icon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RULEBOOK_ITCONC</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-kd.html#SP9">§9</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
Total memory consumption was 412507K = 403 MB
|
||||
Total memory consumption was 418902K = 409 MB
|
||||
|
||||
65.5% was used for 2097224 objects, in 398983 frames in 338 x 800K = 270400K = 264 MB:
|
||||
66.0% was used for 2116838 objects, in 418597 frames in 346 x 800K = 276800K = 270 MB:
|
||||
|
||||
10.4% linked_list 78564 objects, 43995840 bytes
|
||||
9.8% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
|
||||
6.8% text_stream_array 5174 x 100 = 517400 objects, 29139968 bytes
|
||||
4.0% inter_symbol_array 161 x 1024 = 164864 objects, 17151008 bytes
|
||||
10.2% linked_list 78564 objects, 43995840 bytes
|
||||
9.7% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
|
||||
6.7% text_stream_array 5174 x 100 = 517400 objects, 29139968 bytes
|
||||
3.9% inter_symbol_array 161 x 1024 = 164864 objects, 17151008 bytes
|
||||
2.4% parse_node 129462 objects, 10356960 bytes
|
||||
1.7% verb_conjugation 160 objects, 7425280 bytes
|
||||
1.3% parse_node_annotation_array 345 x 500 = 172500 objects, 5531040 bytes
|
||||
0.8% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes
|
||||
1.2% parse_node_annotation_array 345 x 500 = 172500 objects, 5531040 bytes
|
||||
0.7% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes
|
||||
0.7% inter_name_array 69 x 1000 = 69000 objects, 3314208 bytes
|
||||
0.7% inter_error_stash 19904 objects, 3025408 bytes
|
||||
0.6% kind_array 68 x 1000 = 68000 objects, 2722176 bytes
|
||||
0.5% inter_name_generator_array 53 x 1000 = 53000 objects, 2121696 bytes
|
||||
0.4% inter_name_generator_array 53 x 1000 = 53000 objects, 2121696 bytes
|
||||
0.4% inter_schema_token 13926 objects, 2005344 bytes
|
||||
0.4% package_request 21138 objects, 1860144 bytes
|
||||
0.4% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes
|
||||
|
@ -20,7 +21,7 @@ Total memory consumption was 412507K = 403 MB
|
|||
0.3% inter_symbols_table 26578 objects, 1488368 bytes
|
||||
0.3% dict_entry_array 442 x 100 = 44200 objects, 1428544 bytes
|
||||
0.3% i6_schema_array 23 x 100 = 2300 objects, 1380736 bytes
|
||||
0.3% inter_package 26578 objects, 1275744 bytes
|
||||
0.2% inter_package 26578 objects, 1275744 bytes
|
||||
0.2% map_data 670 objects, 1125600 bytes
|
||||
0.2% id_body 941 objects, 1076504 bytes
|
||||
0.2% adjective_meaning 202 objects, 1000304 bytes
|
||||
|
@ -29,12 +30,12 @@ Total memory consumption was 412507K = 403 MB
|
|||
0.2% ptoken 8382 objects, 871728 bytes
|
||||
0.2% grammatical_usage 3611 objects, 866640 bytes
|
||||
0.2% individual_form 2561 objects, 860496 bytes
|
||||
0.2% inter_schema_node 8891 objects, 853536 bytes
|
||||
0.1% inter_schema_node 8891 objects, 853536 bytes
|
||||
0.1% inter_annotation_array 6 x 8192 = 49152 objects, 786624 bytes
|
||||
0.1% unary_predicate_array 16 x 1000 = 16000 objects, 640512 bytes
|
||||
0.1% scan_directory 112 objects, 462336 bytes
|
||||
0.1% local_variable_array 47 x 100 = 4700 objects, 452704 bytes
|
||||
---- dictionary 8257 objects, 396336 bytes
|
||||
---- dictionary 8256 objects, 396288 bytes
|
||||
---- verb_usage 1128 objects, 388032 bytes
|
||||
---- rule 469 objects, 367696 bytes
|
||||
---- verb_form 386 objects, 345856 bytes
|
||||
|
@ -76,7 +77,6 @@ Total memory consumption was 412507K = 403 MB
|
|||
---- response_message 407 objects, 52096 bytes
|
||||
---- ap_clause_array 2 x 400 = 800 objects, 51264 bytes
|
||||
---- text_substitution 436 objects, 41856 bytes
|
||||
---- inter_error_stash 273 objects, 41496 bytes
|
||||
---- activity_list_array 1 x 1000 objects, 40032 bytes
|
||||
---- anl_clause_array 1 x 1000 objects, 40032 bytes
|
||||
---- to_family_data 497 objects, 39760 bytes
|
||||
|
@ -84,8 +84,8 @@ Total memory consumption was 412507K = 403 MB
|
|||
---- parsing_data 670 objects, 37520 bytes
|
||||
---- heading 198 objects, 36432 bytes
|
||||
---- production_list 617 objects, 34552 bytes
|
||||
---- regions_data 670 objects, 32160 bytes
|
||||
---- counting_data 670 objects, 32160 bytes
|
||||
---- regions_data 670 objects, 32160 bytes
|
||||
---- linked_list_item_array 2 x 1000 = 2000 objects, 32064 bytes
|
||||
---- HTML_tag_array 1 x 1000 objects, 32032 bytes
|
||||
---- property_permission 96 objects, 31488 bytes
|
||||
|
@ -133,20 +133,20 @@ Total memory consumption was 412507K = 403 MB
|
|||
---- value_property_data 84 objects, 4704 bytes
|
||||
---- parsing_pp_data 96 objects, 4608 bytes
|
||||
---- compatibility_specification 86 objects, 4128 bytes
|
||||
---- activity 35 objects, 3920 bytes
|
||||
---- command_line_switch 49 objects, 3920 bytes
|
||||
---- activity 35 objects, 3920 bytes
|
||||
---- submodule_request 94 objects, 3760 bytes
|
||||
---- parse_node_annotation_type 114 objects, 3648 bytes
|
||||
---- property_setting_bp_data 84 objects, 3360 bytes
|
||||
---- method_set 105 objects, 3360 bytes
|
||||
---- property_setting_bp_data 84 objects, 3360 bytes
|
||||
---- kind_constructor_comparison_schema_array 1 x 100 objects, 3232 bytes
|
||||
---- inform_extension 19 objects, 3192 bytes
|
||||
---- definition 44 objects, 3168 bytes
|
||||
---- semver_range 29 objects, 3016 bytes
|
||||
---- either_or_property_data 62 objects, 2976 bytes
|
||||
---- use_option 29 objects, 2552 bytes
|
||||
---- part_of_inference_data 79 objects, 2528 bytes
|
||||
---- parentage_inference_data 79 objects, 2528 bytes
|
||||
---- part_of_inference_data 79 objects, 2528 bytes
|
||||
---- kind_constructor_instance_array 1 x 100 objects, 2432 bytes
|
||||
---- kind_constructor_casting_rule_array 1 x 100 objects, 2432 bytes
|
||||
---- equation_symbol 30 objects, 2400 bytes
|
||||
|
@ -159,8 +159,8 @@ Total memory consumption was 412507K = 403 MB
|
|||
---- cached_kind_declaration 38 objects, 1520 bytes
|
||||
---- noun_filter_token 22 objects, 1408 bytes
|
||||
---- inter_node_array 34 objects, 1360 bytes
|
||||
---- inter_annotation_form 33 objects, 1320 bytes
|
||||
---- special_meaning_holder 33 objects, 1320 bytes
|
||||
---- inter_annotation_form 33 objects, 1320 bytes
|
||||
---- constant_phrase 20 objects, 1280 bytes
|
||||
---- table_column 16 objects, 1280 bytes
|
||||
---- invocation_options_array 1 x 100 objects, 1224 bytes
|
||||
|
@ -173,20 +173,19 @@ Total memory consumption was 412507K = 403 MB
|
|||
---- submodule_identity 31 objects, 992 bytes
|
||||
---- named_rulebook_outcome 15 objects, 960 bytes
|
||||
---- pipeline_stage 19 objects, 912 bytes
|
||||
---- inter_data_type 16 objects, 896 bytes
|
||||
---- control_structure_phrase 12 objects, 864 bytes
|
||||
---- cached_understanding 21 objects, 840 bytes
|
||||
---- phrase_option_array 1 x 100 objects, 824 bytes
|
||||
---- internal_test 15 objects, 720 bytes
|
||||
---- inbuild_search_result 18 objects, 720 bytes
|
||||
---- internal_test 15 objects, 720 bytes
|
||||
---- inform_language 6 objects, 672 bytes
|
||||
---- relation_guard 5 objects, 640 bytes
|
||||
---- code_generation 1 object, 576 bytes
|
||||
---- inter_warehouse_room 10 objects, 560 bytes
|
||||
---- rulebook_outcome 17 objects, 544 bytes
|
||||
---- small_word_set 11 objects, 528 bytes
|
||||
---- inform_kit 5 objects, 520 bytes
|
||||
---- implication 13 objects, 520 bytes
|
||||
---- inform_kit 5 objects, 520 bytes
|
||||
---- equation 4 objects, 480 bytes
|
||||
---- i6_memory_setting 14 objects, 448 bytes
|
||||
---- inference_family 11 objects, 440 bytes
|
||||
|
@ -195,53 +194,53 @@ Total memory consumption was 412507K = 403 MB
|
|||
---- source_file 5 objects, 360 bytes
|
||||
---- inbuild_genre 7 objects, 336 bytes
|
||||
---- module_request 8 objects, 320 bytes
|
||||
---- grammatical_category 8 objects, 320 bytes
|
||||
---- pronoun 8 objects, 320 bytes
|
||||
---- door_dir_notice 5 objects, 320 bytes
|
||||
---- pronoun 8 objects, 320 bytes
|
||||
---- grammatical_category 8 objects, 320 bytes
|
||||
---- tree_inventory 1 object, 312 bytes
|
||||
---- up_family 9 objects, 288 bytes
|
||||
---- build_step 4 objects, 288 bytes
|
||||
---- compilation_unit 5 objects, 280 bytes
|
||||
---- contents_entry 7 objects, 280 bytes
|
||||
---- explicit_bp_data 5 objects, 280 bytes
|
||||
---- contents_entry 7 objects, 280 bytes
|
||||
---- door_to_notice 5 objects, 280 bytes
|
||||
---- verb_usage_tier 5 objects, 240 bytes
|
||||
---- inter_pipeline 1 object, 232 bytes
|
||||
---- adjective_meaning_family 7 objects, 224 bytes
|
||||
---- test_scenario 1 object, 216 bytes
|
||||
---- release_instructions 1 object, 208 bytes
|
||||
---- build_skill 5 objects, 200 bytes
|
||||
---- code_generator 5 objects, 200 bytes
|
||||
---- build_skill 5 objects, 200 bytes
|
||||
---- inform_project 1 object, 192 bytes
|
||||
---- kit_dependency 4 objects, 192 bytes
|
||||
---- plural_dictionary_entry 4 objects, 192 bytes
|
||||
---- inference_subject_family 5 objects, 160 bytes
|
||||
---- inter_architecture 4 objects, 160 bytes
|
||||
---- imperative_defn_family 4 objects, 160 bytes
|
||||
---- attachment_instruction 4 objects, 160 bytes
|
||||
---- inference_subject_family 5 objects, 160 bytes
|
||||
---- imperative_defn_family 4 objects, 160 bytes
|
||||
---- inter_architecture 4 objects, 160 bytes
|
||||
---- element_activation 4 objects, 128 bytes
|
||||
---- inbuild_nest 3 objects, 120 bytes
|
||||
---- local_block_value 2 objects, 112 bytes
|
||||
---- inform_kit_ittt 2 objects, 96 bytes
|
||||
---- compile_task_data 1 object, 80 bytes
|
||||
---- article 2 objects, 80 bytes
|
||||
---- group_together_function 2 objects, 80 bytes
|
||||
---- inter_warehouse 1 object, 56 bytes
|
||||
---- compile_task_data 1 object, 80 bytes
|
||||
---- figures_data 1 object, 56 bytes
|
||||
---- inter_warehouse 1 object, 56 bytes
|
||||
---- build_methodology 1 object, 56 bytes
|
||||
---- HTML_file_state 1 object, 48 bytes
|
||||
---- star_invention 1 object, 48 bytes
|
||||
---- I6_generation_data 1 object, 40 bytes
|
||||
---- loop_over_scope 1 object, 40 bytes
|
||||
---- kind_template_definition 1 object, 40 bytes
|
||||
---- by_function_bp_data 1 object, 40 bytes
|
||||
---- I6_generation_data 1 object, 40 bytes
|
||||
---- loop_over_scope 1 object, 40 bytes
|
||||
|
||||
34.4% was used for memory not allocated for objects:
|
||||
33.9% was used for memory not allocated for objects:
|
||||
|
||||
20.3% text stream storage 85803220 bytes in 535370 claims
|
||||
1.2% dictionary storage 5402624 bytes in 8257 claims
|
||||
20.0% text stream storage 85802744 bytes in 535358 claims
|
||||
1.2% dictionary storage 5398528 bytes in 8256 claims
|
||||
---- sorting 736 bytes in 3 claims
|
||||
1.7% source text 7200000 bytes in 3 claims
|
||||
1.6% source text 7200000 bytes in 3 claims
|
||||
2.5% source text details 10800000 bytes in 2 claims
|
||||
---- documentation fragments 262144 bytes in 1 claim
|
||||
---- linguistic stock array 81920 bytes in 2 claims
|
||||
|
@ -250,11 +249,11 @@ Total memory consumption was 412507K = 403 MB
|
|||
3.9% inter bytecode storage 16768548 bytes in 14 claims
|
||||
2.9% inter links storage 12448896 bytes in 12 claims
|
||||
---- inter tree location list storage 191232 bytes in 32 claims
|
||||
0.4% instance-of-kind counting 1695204 bytes in 1 claim
|
||||
0.3% instance-of-kind counting 1695204 bytes in 1 claim
|
||||
---- compilation workspace for objects 21856 bytes in 25 claims
|
||||
---- lists for type-checking invocations 16000 bytes in 1 claim
|
||||
---- code generation workspace for objects 1336 bytes in 4 claims
|
||||
---- emitter array storage 161792 bytes in 2062 claims
|
||||
|
||||
18.8% was overhead - 79701160 bytes = 77833K = 76 MB
|
||||
19.4% was overhead - 83271792 bytes = 81320K = 79 MB
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
100.0% in inform7 run
|
||||
56.1% in compilation to Inter
|
||||
40.6% in //Sequence::undertake_queued_tasks//
|
||||
3.5% in //MajorNodes::pre_pass//
|
||||
2.5% in //MajorNodes::pass_1//
|
||||
2.0% in //RTPhrasebook::compile_entries//
|
||||
56.6% in compilation to Inter
|
||||
40.8% in //Sequence::undertake_queued_tasks//
|
||||
3.6% in //MajorNodes::pre_pass//
|
||||
2.6% in //MajorNodes::pass_1//
|
||||
2.1% in //RTPhrasebook::compile_entries//
|
||||
1.3% in //ImperativeDefinitions::assess_all//
|
||||
1.1% in //RTKindConstructors::compile//
|
||||
1.2% in //RTKindConstructors::compile//
|
||||
0.4% in //ImperativeDefinitions::compile_first_block//
|
||||
0.4% in //MajorNodes::pass_2//
|
||||
0.4% in //Sequence::undertake_queued_tasks//
|
||||
|
@ -15,19 +15,20 @@
|
|||
0.1% in //InferenceSubjects::emit_all//
|
||||
0.1% in //RTKindConstructors::compile_permissions//
|
||||
0.1% in //Task::make_built_in_kind_constructors//
|
||||
2.0% not specifically accounted for
|
||||
41.9% in running Inter pipeline
|
||||
0.1% in //World::stages_II_and_III//
|
||||
1.7% not specifically accounted for
|
||||
41.3% in running Inter pipeline
|
||||
12.7% in step preparation
|
||||
10.4% in inter step 6/14: make-synoptic-module
|
||||
8.3% in inter step 14/14: generate inform6 -> auto.inf
|
||||
3.8% in inter step 5/14: load-binary-kits
|
||||
2.6% in inter step 9/14: make-identifiers-unique
|
||||
0.4% in inter step 12/14: eliminate-redundant-operations
|
||||
0.2% in inter step 4/14: compile-splats
|
||||
0.2% in inter step 7/14: shorten-wiring
|
||||
10.1% in inter step 6/14: make-synoptic-module
|
||||
7.8% in inter step 14/14: generate inform6 -> auto.inf
|
||||
4.1% in inter step 5/14: load-binary-kits
|
||||
2.7% in inter step 9/14: make-identifiers-unique
|
||||
0.3% in inter step 12/14: eliminate-redundant-operations
|
||||
0.3% in inter step 4/14: compile-splats
|
||||
0.3% in inter step 7/14: shorten-wiring
|
||||
0.1% in inter step 10/14: reconcile-verbs
|
||||
0.1% in inter step 11/14: eliminate-redundant-labels
|
||||
0.1% in inter step 8/14: detect-indirect-calls
|
||||
2.4% not specifically accounted for
|
||||
2.5% not specifically accounted for
|
||||
1.6% in supervisor
|
||||
0.3% not specifically accounted for
|
||||
0.4% not specifically accounted for
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -27993,7 +27993,7 @@ package main _plain
|
|||
constant (/main/generic/kinds/K_int32) KIT_CONFIGURATION_BITMAP = 0
|
||||
constant (/main/generic/kinds/K_int32) KIT_CONFIGURATION_LOOKMODE = 2
|
||||
constant (/main/generic/kinds/K_string) I7_VERSION_NUMBER = "10.1.0"
|
||||
constant (/main/generic/kinds/K_string) I7_FULL_VERSION_NUMBER = "10.1.0-alpha.1+6U36"
|
||||
constant (/main/generic/kinds/K_string) I7_FULL_VERSION_NUMBER = "10.1.0-alpha.1+6U37"
|
||||
constant (/main/generic/kinds/K_string) ^virtual_machine = "C/32d/v1/no-main"
|
||||
constant (/main/generic/kinds/K_string) ^virtual_machine_icon = "vm_glulx.png"
|
||||
constant (/main/generic/kinds/K_string) ^language_elements_used = "core, naming, instance counting, glulx external files"
|
||||
|
|
|
@ -261,7 +261,7 @@ names are not.
|
|||
|
||||
@<Kinds whose default values are set by Neptune files@> =
|
||||
inter_ti val1 = 0, val2 = 0;
|
||||
if (Inter::Types::read_int_in_I6_notation(textual_description, &val1, &val2) == TRUE) {
|
||||
if (InterValuePairs::read_int_in_I6_notation(textual_description, &val1, &val2) == TRUE) {
|
||||
*v1 = val1; *v2 = val2; return;
|
||||
}
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@ void Emit::to_value_pair_in_context(inter_name *context, inter_ti *v1, inter_ti
|
|||
void Emit::stvp_inner(inter_symbol *S, inter_ti *v1, inter_ti *v2,
|
||||
inter_package *pack) {
|
||||
if (S) {
|
||||
Inter::Types::symbol_to_pair(InterPackage::tree(pack), pack, S, v1, v2);
|
||||
InterValuePairs::from_symbol(InterPackage::tree(pack), pack, S, v1, v2);
|
||||
return;
|
||||
}
|
||||
*v1 = LITERAL_IVAL; *v2 = 0;
|
||||
|
@ -120,7 +120,7 @@ void Emit::rudimentary_kinds(void) {
|
|||
packaging_state save = Packaging::enter_home_of(KU);
|
||||
unchecked_interk = InterNames::to_symbol(KU);
|
||||
Emit::kind_inner(Emit::symbol_id(unchecked_interk), 0,
|
||||
UNCHECKED_IDT, 0, NULL);
|
||||
UNCHECKED_ITCONC, 0, NULL);
|
||||
Packaging::exit(Emit::tree(), save);
|
||||
|
||||
inter_name *KUF = Hierarchy::find(K_UNCHECKED_FUNCTION_HL);
|
||||
|
@ -130,7 +130,7 @@ void Emit::rudimentary_kinds(void) {
|
|||
operands[0] = Emit::symbol_id(unchecked_interk);
|
||||
operands[1] = Emit::symbol_id(unchecked_interk);
|
||||
Emit::kind_inner(Emit::symbol_id(unchecked_function_interk), 0,
|
||||
FUNCTION_IDT, 2, operands);
|
||||
FUNCTION_ITCONC, 2, operands);
|
||||
Packaging::exit(Emit::tree(), save);
|
||||
|
||||
inter_name *KLF = Hierarchy::find(K_UNCHECKED_LIST_HL);
|
||||
|
@ -138,25 +138,25 @@ void Emit::rudimentary_kinds(void) {
|
|||
unchecked_list_interk = InterNames::to_symbol(KLF);
|
||||
operands[0] = Emit::symbol_id(unchecked_interk);
|
||||
Emit::kind_inner(Emit::symbol_id(unchecked_list_interk), 0,
|
||||
LIST_IDT, 1, operands);
|
||||
LIST_ITCONC, 1, operands);
|
||||
Packaging::exit(Emit::tree(), save);
|
||||
|
||||
inter_name *KTI = Hierarchy::find(K_INT32_HL);
|
||||
save = Packaging::enter_home_of(KTI);
|
||||
int_interk = InterNames::to_symbol(KTI);
|
||||
Emit::kind_inner(Emit::symbol_id(int_interk), 0, INT32_IDT, 0, NULL);
|
||||
Emit::kind_inner(Emit::symbol_id(int_interk), 0, INT32_ITCONC, 0, NULL);
|
||||
Packaging::exit(Emit::tree(), save);
|
||||
|
||||
inter_name *KTB = Hierarchy::find(K_INT2_HL);
|
||||
save = Packaging::enter_home_of(KTB);
|
||||
boolean_interk = InterNames::to_symbol(KTB);
|
||||
Emit::kind_inner(Emit::symbol_id(boolean_interk), 0, INT2_IDT, 0, NULL);
|
||||
Emit::kind_inner(Emit::symbol_id(boolean_interk), 0, INT2_ITCONC, 0, NULL);
|
||||
Packaging::exit(Emit::tree(), save);
|
||||
|
||||
inter_name *KTS = Hierarchy::find(K_STRING_HL);
|
||||
save = Packaging::enter_home_of(KTS);
|
||||
string_interk = InterNames::to_symbol(KTS);
|
||||
Emit::kind_inner(Emit::symbol_id(string_interk), 0, TEXT_IDT, 0, NULL);
|
||||
Emit::kind_inner(Emit::symbol_id(string_interk), 0, TEXT_ITCONC, 0, NULL);
|
||||
Packaging::exit(Emit::tree(), save);
|
||||
}
|
||||
|
||||
|
@ -381,8 +381,8 @@ void Emit::instance(inter_name *inst_iname, kind *K, int v) {
|
|||
inter_symbol *Emit::variable(inter_name *var_iname, kind *K, inter_ti v1, inter_ti v2) {
|
||||
packaging_state save = Packaging::enter_home_of(var_iname);
|
||||
inter_symbol *var_s = InterNames::to_symbol(var_iname);
|
||||
inter_type it = Inter::Types::untyped();
|
||||
if ((K) && (K != K_value)) it = Inter::Types::from_symbol(Produce::kind_to_symbol(K));
|
||||
inter_type it = InterTypes::untyped();
|
||||
if ((K) && (K != K_value)) it = InterTypes::from_type_name(Produce::kind_to_symbol(K));
|
||||
Produce::guard(Inter::Variable::new(Emit::at(),
|
||||
Emit::symbol_id(var_s), it, v1, v2, Emit::baseline(), NULL));
|
||||
Packaging::exit(Emit::tree(), save);
|
||||
|
@ -395,8 +395,8 @@ inter_symbol *Emit::variable(inter_name *var_iname, kind *K, inter_ti v1, inter_
|
|||
void Emit::property(inter_name *prop_iname, kind *K) {
|
||||
packaging_state save = Packaging::enter_home_of(prop_iname);
|
||||
inter_symbol *prop_s = InterNames::to_symbol(prop_iname);
|
||||
inter_type it = Inter::Types::untyped();
|
||||
if ((K) && (K != K_value)) it = Inter::Types::from_symbol(Produce::kind_to_symbol(K));
|
||||
inter_type it = InterTypes::untyped();
|
||||
if ((K) && (K != K_value)) it = InterTypes::from_type_name(Produce::kind_to_symbol(K));
|
||||
Produce::guard(Inter::Property::new(Emit::at(),
|
||||
Emit::symbol_id(prop_s), it, Emit::baseline(), NULL));
|
||||
Packaging::exit(Emit::tree(), save);
|
||||
|
|
|
@ -131,17 +131,17 @@ source text.
|
|||
void RTKindDeclarations::declare_base_kind(kind *K) {
|
||||
if (K == NULL) internal_error("tried to emit null kind");
|
||||
if (InterNames::is_defined(RTKindDeclarations::iname(K))) return;
|
||||
inter_ti dt = INT32_IDT;
|
||||
if (K == K_object) dt = ENUM_IDT;
|
||||
if (Kinds::Behaviour::is_an_enumeration(K)) dt = ENUM_IDT;
|
||||
if (K == K_truth_state) dt = INT2_IDT;
|
||||
if (K == K_text) dt = TEXT_IDT;
|
||||
if (K == K_table) dt = TABLE_IDT;
|
||||
inter_ti dt = INT32_ITCONC;
|
||||
if (K == K_object) dt = ENUM_ITCONC;
|
||||
if (Kinds::Behaviour::is_an_enumeration(K)) dt = ENUM_ITCONC;
|
||||
if (K == K_truth_state) dt = INT2_ITCONC;
|
||||
if (K == K_text) dt = TEXT_ITCONC;
|
||||
if (K == K_table) dt = TABLE_ITCONC;
|
||||
kind *S = Latticework::super(K);
|
||||
if ((S) && (Kinds::conforms_to(S, K_object) == FALSE)) S = NULL;
|
||||
if (S) {
|
||||
RTKindDeclarations::declare_base_kind(S);
|
||||
dt = ENUM_IDT;
|
||||
dt = ENUM_ITCONC;
|
||||
}
|
||||
Emit::kind(RTKindDeclarations::iname(K), S?RTKindDeclarations::iname(S):NULL,
|
||||
dt, 0, NULL);
|
||||
|
@ -177,25 +177,25 @@ void RTKindDeclarations::declare_constructed_kind(cached_kind_declaration *dec)
|
|||
@<Run out inter kind for list@> =
|
||||
arity = 1;
|
||||
operands[0] = Kinds::unary_construction_material(K);
|
||||
icon = LIST_IDT;
|
||||
icon = LIST_ITCONC;
|
||||
|
||||
@<Run out inter kind for description@> =
|
||||
arity = 1;
|
||||
operands[0] = Kinds::unary_construction_material(K);
|
||||
icon = DESCRIPTION_IDT;
|
||||
icon = DESCRIPTION_ITCONC;
|
||||
|
||||
@<Run out inter kind for column@> =
|
||||
arity = 1;
|
||||
operands[0] = Kinds::unary_construction_material(K);
|
||||
icon = COLUMN_IDT;
|
||||
icon = COLUMN_ITCONC;
|
||||
|
||||
@<Run out inter kind for relation@> =
|
||||
arity = 2;
|
||||
Kinds::binary_construction_material(K, &operands[0], &operands[1]);
|
||||
icon = RELATION_IDT;
|
||||
icon = RELATION_ITCONC;
|
||||
|
||||
@<Run out inter kind for phrase@> =
|
||||
icon = FUNCTION_IDT;
|
||||
icon = FUNCTION_ITCONC;
|
||||
kind *X = NULL, *result = NULL;
|
||||
Kinds::binary_construction_material(K, &X, &result);
|
||||
while (Kinds::get_construct(X) == CON_TUPLE_ENTRY) {
|
||||
|
@ -211,11 +211,11 @@ void RTKindDeclarations::declare_constructed_kind(cached_kind_declaration *dec)
|
|||
@<Run out inter kind for rule@> =
|
||||
arity = 2;
|
||||
Kinds::binary_construction_material(K, &operands[0], &operands[1]);
|
||||
icon = RULE_IDT;
|
||||
icon = RULE_ITCONC;
|
||||
|
||||
@<Run out inter kind for rulebook@> =
|
||||
arity = 1;
|
||||
kind *X = NULL, *Y = NULL;
|
||||
Kinds::binary_construction_material(K, &X, &Y);
|
||||
operands[0] = Kinds::binary_con(CON_phrase, X, Y);
|
||||
icon = RULEBOOK_IDT;
|
||||
icon = RULEBOOK_ITCONC;
|
||||
|
|
|
@ -2,6 +2,6 @@ inter: inter/Tests/Invalid/miscol.intert, line 6: no such symbol: 'K_number'
|
|||
>--> kind K_column_of_number column of K_number
|
||||
inter: inter/Tests/Invalid/miscol.intert, line 7: no such symbol: 'K_colour'
|
||||
>--> kind K_column_of_colour column of K_colour
|
||||
inter: inter/Tests/Invalid/miscol.intert, line 8: not a list: 'K_column_of_number'
|
||||
inter: inter/Tests/Invalid/miscol.intert, line 9: not a list: 'K_column_of_colour'
|
||||
inter: inter/Tests/Invalid/miscol.intert, line 8: not a list
|
||||
inter: inter/Tests/Invalid/miscol.intert, line 9: not a list
|
||||
inter: inter/Tests/Invalid/miscol.intert, line 4: symbol undefined in package: 'C_complaint'
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
inter: inter/Tests/Invalid/mistype.intert, line 5: no such data type: 'int32768'
|
||||
inter: inter/Tests/Invalid/mistype.intert, line 5: no such symbol: 'int32768'
|
||||
>--> kind K_number int32768
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
inter: inter/Tests/Invalid/misvar.intert, line 7: symbol already exists: 'V_apple'
|
||||
>--> variable V_apple = 2
|
||||
inter: inter/Tests/Invalid/misvar.intert, line 8: no such symbol: 'int32'
|
||||
>--> variable (int32) V_peach = 12
|
||||
inter: inter/Tests/Invalid/misvar.intert, line 4: symbol undefined in package: 'khglkl'
|
||||
|
|
|
@ -603,7 +603,7 @@ parsing the schema.)
|
|||
if (t->constant_number >= 0) {
|
||||
v1 = LITERAL_IVAL; v2 = (inter_ti) t->constant_number;
|
||||
} else {
|
||||
if (Inter::Types::read_int_in_I6_notation(t->material, &v1, &v2) == FALSE) {
|
||||
if (InterValuePairs::read_int_in_I6_notation(t->material, &v1, &v2) == FALSE) {
|
||||
TEMPORARY_TEXT(msg)
|
||||
WRITE_TO(msg, "malformed literal number '%S'", t->material);
|
||||
InterSchemas::throw_error(node, msg);
|
||||
|
|
|
@ -337,7 +337,7 @@ inter_name *Produce::symbol_constant(inter_tree *I, inter_name *con_iname, kind
|
|||
inter_symbol *con_s = InterNames::to_symbol(con_iname);
|
||||
inter_ti v1 = 0, v2 = 0;
|
||||
inter_package *pack = InterBookmark::package(IBM);
|
||||
Inter::Types::symbol_to_pair(InterPackage::tree(pack), pack, val_s, &v1, &v2);
|
||||
InterValuePairs::from_symbol(InterPackage::tree(pack), pack, val_s, &v1, &v2);
|
||||
Produce::guard(Inter::Constant::new_numerical(IBM,
|
||||
InterSymbolsTable::id_from_symbol_at_bookmark(IBM, con_s),
|
||||
InterSymbolsTable::id_from_symbol_at_bookmark(IBM, Produce::kind_to_symbol(K)),
|
||||
|
@ -487,7 +487,7 @@ void Produce::val_iname(inter_tree *I, kind *K, inter_name *iname) {
|
|||
void Produce::val_symbol(inter_tree *I, kind *K, inter_symbol *s) {
|
||||
inter_ti val1 = 0, val2 = 0;
|
||||
inter_bookmark *IBM = Packaging::at(I);
|
||||
Inter::Types::symbol_to_pair(InterBookmark::tree(IBM),
|
||||
InterValuePairs::from_symbol(InterBookmark::tree(IBM),
|
||||
InterBookmark::package(IBM), s, &val1, &val2);
|
||||
Produce::val(I, K, val1, val2);
|
||||
}
|
||||
|
@ -502,7 +502,7 @@ void Produce::val(inter_tree *I, kind *K, inter_ti val1, inter_ti val2) {
|
|||
val_kind = Produce::kind_to_symbol(K);
|
||||
if (val_kind == NULL) internal_error("no kind for val");
|
||||
}
|
||||
Produce::guard(Inter::Val::new(Produce::at(I), Inter::Types::from_symbol(val_kind),
|
||||
Produce::guard(Inter::Val::new(Produce::at(I), InterTypes::from_type_name(val_kind),
|
||||
Produce::level(I), val1, val2, NULL));
|
||||
}
|
||||
|
||||
|
@ -552,14 +552,14 @@ void Produce::ref_iname(inter_tree *I, kind *K, inter_name *iname) {
|
|||
void Produce::ref_symbol(inter_tree *I, kind *K, inter_symbol *s) {
|
||||
inter_ti val1 = 0, val2 = 0;
|
||||
inter_bookmark *IBM = Packaging::at(I);
|
||||
Inter::Types::symbol_to_pair(InterBookmark::tree(IBM), InterBookmark::package(IBM),
|
||||
InterValuePairs::from_symbol(InterBookmark::tree(IBM), InterBookmark::package(IBM),
|
||||
s, &val1, &val2);
|
||||
inter_symbol *val_kind = NULL;
|
||||
if ((K) && (K != K_value)) {
|
||||
val_kind = Produce::kind_to_symbol(K);
|
||||
if (val_kind == NULL) internal_error("no kind for ref");
|
||||
}
|
||||
Produce::guard(Inter::Ref::new(Produce::at(I), Inter::Types::from_symbol(val_kind),
|
||||
Produce::guard(Inter::Ref::new(Produce::at(I), InterTypes::from_type_name(val_kind),
|
||||
Produce::level(I), val1, val2, NULL));
|
||||
}
|
||||
|
||||
|
@ -650,8 +650,8 @@ inter_symbol *Produce::local(inter_tree *I, kind *K, text_stream *lname,
|
|||
Produce::guard(Inter::Comment::new(locals_at, Produce::baseline(locals_at) + 1,
|
||||
NULL, ID));
|
||||
}
|
||||
inter_type it = Inter::Types::untyped();
|
||||
if ((K) && (K != K_value)) it = Inter::Types::from_symbol(Produce::kind_to_symbol(K));
|
||||
inter_type it = InterTypes::untyped();
|
||||
if ((K) && (K != K_value)) it = InterTypes::from_type_name(Produce::kind_to_symbol(K));
|
||||
Produce::guard(Inter::Local::new(locals_at, local_s, it,
|
||||
Produce::baseline(locals_at) + 1, NULL));
|
||||
return local_s;
|
||||
|
|
|
@ -17,7 +17,6 @@ which use this module:
|
|||
@e inter_symbols_table_CLASS
|
||||
@e inter_symbol_CLASS
|
||||
@e inter_annotation_CLASS
|
||||
@e inter_data_type_CLASS
|
||||
@e inter_construct_CLASS
|
||||
@e inter_annotation_form_CLASS
|
||||
@e inter_error_location_CLASS
|
||||
|
@ -32,7 +31,6 @@ DECLARE_CLASS(inter_tree)
|
|||
DECLARE_CLASS(inter_warehouse)
|
||||
DECLARE_CLASS(inter_warehouse_room)
|
||||
DECLARE_CLASS(inter_symbols_table)
|
||||
DECLARE_CLASS(inter_data_type)
|
||||
DECLARE_CLASS(inter_construct)
|
||||
DECLARE_CLASS(inter_annotation_form)
|
||||
DECLARE_CLASS(inter_error_location)
|
||||
|
@ -55,7 +53,7 @@ void BytecodeModule::start(void) {
|
|||
@<Register this module's debugging log writers@>;
|
||||
|
||||
InterConstruct::create_language();
|
||||
Inter::Types::create_all();
|
||||
InterTypes::initialise_constructors();
|
||||
}
|
||||
void BytecodeModule::end(void) {
|
||||
}
|
||||
|
|
|
@ -404,6 +404,12 @@ inter_ti InterSymbolsTable::id_from_symbol(inter_tree *I, inter_package *P, inte
|
|||
if (S == NULL) internal_error("no symbol");
|
||||
inter_symbols_table *P_table = InterPackage::scope(P);
|
||||
if (P_table == NULL) P_table = InterTree::global_scope(I);
|
||||
return InterSymbolsTable::id_from_symbol_in_table(P_table, S);
|
||||
}
|
||||
|
||||
inter_ti InterSymbolsTable::id_from_symbol_in_table(inter_symbols_table *P_table, inter_symbol *S) {
|
||||
if (S == NULL) internal_error("no symbol");
|
||||
if (P_table == NULL) internal_error("no table");
|
||||
inter_symbols_table *SP_table = S->owning_table;
|
||||
if (P_table != SP_table) @<We need an ID to a faraway symbol@>
|
||||
else return S->symbol_ID;
|
||||
|
@ -416,8 +422,6 @@ them on a package-by-package basis, so it is an error to call this function if
|
|||
@<We need an ID to a faraway symbol@> =
|
||||
LOGIF(INTER_SYMBOLS,
|
||||
"Seek ID of $3 from $4, which is not its owner $4\n", S, P_table, SP_table);
|
||||
if (SP_table == InterTree::global_scope(I))
|
||||
internal_error("cannot make a local symbol ID from a global symbol");
|
||||
@<If this table already has a symbol wired to that faraway symbol, fine: use that@>;
|
||||
@<Otherwise make a new symbol in the table and wire it to the faraway one@>;
|
||||
|
||||
|
|
|
@ -4,8 +4,8 @@ To manage the memory storage of inter code.
|
|||
|
||||
@h Introduction.
|
||||
The data structure in this section may bring to mind the title of the Metallica
|
||||
song "The Thing That Should Not Be", but it works. It's also better that it used
|
||||
to be (which is more than can be said for Metallica).
|
||||
song "The Thing That Should Not Be", but it works. It's also better than it used
|
||||
to be (which is more than you can say for Metallica).
|
||||
|
||||
Each inter tree needs to store data outside of its own //inter_tree_node// structures,
|
||||
data which falls into two categories:
|
||||
|
|
File diff suppressed because it is too large
Load diff
268
inter/bytecode-module/Chapter 3/Inter Value Pairs.w
Normal file
268
inter/bytecode-module/Chapter 3/Inter Value Pairs.w
Normal file
|
@ -0,0 +1,268 @@
|
|||
[InterValuePairs::] Inter Value Pairs.
|
||||
|
||||
Two consecutive bytecode words are used to store a single value in binary Inter.
|
||||
|
||||
@
|
||||
|
||||
@d inter_ti unsigned int
|
||||
@d signed_inter_ti int
|
||||
|
||||
@
|
||||
|
||||
@e LITERAL_IVAL from 0x10000
|
||||
@e LITERAL_TEXT_IVAL
|
||||
@e REAL_IVAL
|
||||
@e ALIAS_IVAL
|
||||
@e UNDEF_IVAL
|
||||
@e DWORD_IVAL
|
||||
@e PDWORD_IVAL
|
||||
@e GLOB_IVAL
|
||||
@e DIVIDER_IVAL
|
||||
|
||||
=
|
||||
void InterValuePairs::write(OUTPUT_STREAM, inter_tree_node *F,
|
||||
inter_ti V1, inter_ti V2, inter_symbols_table *scope, int hex_flag) {
|
||||
switch (V1) {
|
||||
case LITERAL_IVAL:
|
||||
if (hex_flag) WRITE("0x%x", V2);
|
||||
else WRITE("%d", V2); break;
|
||||
case REAL_IVAL:
|
||||
WRITE("r\"");
|
||||
Inter::Constant::write_text(OUT, Inode::ID_to_text(F, V2));
|
||||
WRITE("\"");
|
||||
break;
|
||||
case LITERAL_TEXT_IVAL:
|
||||
WRITE("\"");
|
||||
Inter::Constant::write_text(OUT, Inode::ID_to_text(F, V2));
|
||||
WRITE("\"");
|
||||
break;
|
||||
case ALIAS_IVAL: {
|
||||
inter_symbol *symb = InterSymbolsTable::symbol_from_ID_not_following(scope, V2);
|
||||
TextualInter::write_symbol(OUT, symb);
|
||||
break;
|
||||
}
|
||||
case UNDEF_IVAL: WRITE("undef"); break;
|
||||
case GLOB_IVAL:
|
||||
WRITE("&\"");
|
||||
Inter::Constant::write_text(OUT, Inode::ID_to_text(F, V2));
|
||||
WRITE("\"");
|
||||
break;
|
||||
case DWORD_IVAL:
|
||||
WRITE("dw'");
|
||||
Inter::Constant::write_text(OUT, Inode::ID_to_text(F, V2));
|
||||
WRITE("'");
|
||||
break;
|
||||
case PDWORD_IVAL:
|
||||
WRITE("dwp'");
|
||||
Inter::Constant::write_text(OUT, Inode::ID_to_text(F, V2));
|
||||
WRITE("'");
|
||||
break;
|
||||
case DIVIDER_IVAL:
|
||||
WRITE("^\"");
|
||||
Inter::Constant::write_text(OUT, Inode::ID_to_text(F, V2));
|
||||
WRITE("\"");
|
||||
break;
|
||||
default: WRITE("<invalid-value-type>"); break;
|
||||
}
|
||||
}
|
||||
|
||||
@ =
|
||||
int InterValuePairs::read_int_in_I6_notation(text_stream *S, inter_ti *val1, inter_ti *val2) {
|
||||
int sign = 1, base = 10, from = 0;
|
||||
if (Str::prefix_eq(S, I"-", 1)) { sign = -1; from = 1; }
|
||||
if (Str::prefix_eq(S, I"$", 1)) { base = 16; from = 1; }
|
||||
if (Str::prefix_eq(S, I"$$", 2)) { base = 2; from = 2; }
|
||||
long long int N = 0;
|
||||
LOOP_THROUGH_TEXT(pos, S) {
|
||||
if (pos.index < from) continue;
|
||||
int c = Str::get(pos), d = 0;
|
||||
if ((c >= 'a') && (c <= 'z')) d = c-'a'+10;
|
||||
else if ((c >= 'A') && (c <= 'Z')) d = c-'A'+10;
|
||||
else if ((c >= '0') && (c <= '9')) d = c-'0';
|
||||
else return FALSE;
|
||||
if (d > base) return FALSE;
|
||||
N = base*N + (long long int) d;
|
||||
if (pos.index > 34) return FALSE;
|
||||
}
|
||||
N = sign*N;
|
||||
|
||||
*val1 = LITERAL_IVAL; *val2 = (inter_ti) N;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@
|
||||
|
||||
=
|
||||
int InterValuePairs::holds_symbol(inter_ti val1, inter_ti val2) {
|
||||
if (val1 == ALIAS_IVAL) return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void InterValuePairs::from_symbol(inter_tree *I, inter_package *pack, inter_symbol *S,
|
||||
inter_ti *val1, inter_ti *val2) {
|
||||
if (S == NULL) internal_error("no symbol");
|
||||
*val1 = ALIAS_IVAL; *val2 = InterSymbolsTable::id_from_symbol(I, pack, S);
|
||||
}
|
||||
|
||||
inter_error_message *InterValuePairs::parse(text_stream *line, inter_error_location *eloc,
|
||||
inter_bookmark *IBM, inter_type type_wanted, text_stream *S, inter_ti *val1, inter_ti *val2,
|
||||
inter_symbols_table *scope) {
|
||||
inter_tree *I = InterBookmark::tree(IBM);
|
||||
inter_package *pack = InterBookmark::package(IBM);
|
||||
|
||||
if (Str::eq(S, I"undef")) {
|
||||
*val1 = UNDEF_IVAL; *val2 = 0; return NULL;
|
||||
}
|
||||
if ((Str::begins_with_wide_string(S, L"\"")) && (Str::ends_with_wide_string(S, L"\""))) {
|
||||
*val1 = LITERAL_TEXT_IVAL; *val2 = InterWarehouse::create_text(InterTree::warehouse(I), pack);
|
||||
text_stream *glob_storage = InterWarehouse::get_text(InterTree::warehouse(I), *val2);
|
||||
return Inter::Constant::parse_text(glob_storage, S, 1, Str::len(S)-2, eloc);
|
||||
}
|
||||
if ((Str::begins_with_wide_string(S, L"r\"")) && (Str::ends_with_wide_string(S, L"\""))) {
|
||||
*val1 = REAL_IVAL; *val2 = InterWarehouse::create_text(InterTree::warehouse(I), pack);
|
||||
text_stream *glob_storage = InterWarehouse::get_text(InterTree::warehouse(I), *val2);
|
||||
return Inter::Constant::parse_text(glob_storage, S, 2, Str::len(S)-2, eloc);
|
||||
}
|
||||
if ((Str::begins_with_wide_string(S, L"&\"")) && (Str::ends_with_wide_string(S, L"\""))) {
|
||||
*val1 = GLOB_IVAL; *val2 = InterWarehouse::create_text(InterTree::warehouse(I), pack);
|
||||
text_stream *glob_storage = InterWarehouse::get_text(InterTree::warehouse(I), *val2);
|
||||
return Inter::Constant::parse_text(glob_storage, S, 2, Str::len(S)-2, eloc);
|
||||
}
|
||||
if ((Str::begins_with_wide_string(S, L"dw'")) && (Str::ends_with_wide_string(S, L"'"))) {
|
||||
*val1 = DWORD_IVAL; *val2 = InterWarehouse::create_text(InterTree::warehouse(I), pack);
|
||||
text_stream *glob_storage = InterWarehouse::get_text(InterTree::warehouse(I), *val2);
|
||||
return Inter::Constant::parse_text(glob_storage, S, 3, Str::len(S)-2, eloc);
|
||||
}
|
||||
if ((Str::begins_with_wide_string(S, L"dwp'")) && (Str::ends_with_wide_string(S, L"'"))) {
|
||||
*val1 = PDWORD_IVAL; *val2 = InterWarehouse::create_text(InterTree::warehouse(I), pack);
|
||||
text_stream *glob_storage = InterWarehouse::get_text(InterTree::warehouse(I), *val2);
|
||||
return Inter::Constant::parse_text(glob_storage, S, 4, Str::len(S)-2, eloc);
|
||||
}
|
||||
if ((Str::begins_with_wide_string(S, L"^\"")) && (Str::ends_with_wide_string(S, L"\""))) {
|
||||
*val1 = DIVIDER_IVAL; *val2 = InterWarehouse::create_text(InterTree::warehouse(I), pack);
|
||||
text_stream *divider_storage = InterWarehouse::get_text(InterTree::warehouse(I), *val2);
|
||||
return Inter::Constant::parse_text(divider_storage, S, 2, Str::len(S)-2, eloc);
|
||||
}
|
||||
if (Str::get_first_char(S) == '/') {
|
||||
inter_symbol *symb = InterSymbolsTable::URL_to_symbol(I, S);
|
||||
if (symb == NULL) {
|
||||
TEMPORARY_TEXT(leaf)
|
||||
LOOP_THROUGH_TEXT(pos, S) {
|
||||
wchar_t c = Str::get(pos);
|
||||
if (c == '/') Str::clear(leaf);
|
||||
else PUT_TO(leaf, c);
|
||||
}
|
||||
if (Str::len(leaf) == 0) return Inter::Errors::quoted(I"URL ends in '/'", S, eloc);
|
||||
symb = InterSymbolsTable::symbol_from_name(InterBookmark::scope(IBM), leaf);
|
||||
if (!((symb) && (Wiring::is_wired_to_name(symb)) && (Str::eq(Wiring::wired_to_name(symb), S)))) {
|
||||
symb = InterSymbolsTable::create_with_unique_name(InterBookmark::scope(IBM), leaf);
|
||||
Wiring::wire_to_name(symb, S);
|
||||
}
|
||||
DISCARD_TEXT(leaf)
|
||||
}
|
||||
@<Read symb@>;
|
||||
}
|
||||
int ident = FALSE;
|
||||
if (Characters::isalpha(Str::get_first_char(S))) {
|
||||
ident = TRUE;
|
||||
LOOP_THROUGH_TEXT(pos, S)
|
||||
if ((Characters::isalpha(Str::get(pos)) == FALSE) &&
|
||||
(Characters::isdigit(Str::get(pos)) == FALSE) &&
|
||||
(Str::get(pos) != '_'))
|
||||
ident = FALSE;
|
||||
}
|
||||
if (ident) {
|
||||
inter_symbol *symb = InterSymbolsTable::symbol_from_name(scope, S);
|
||||
if (symb) @<Read symb@>;
|
||||
symb = InterSymbolsTable::create_with_unique_name(InterBookmark::scope(IBM), S);
|
||||
InterValuePairs::from_symbol(I, pack, symb, val1, val2);
|
||||
InterSymbol::set_flag(symb, SPECULATIVE_ISYMF);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
wchar_t c = Str::get_first_char(S);
|
||||
if ((c == '-') || (Characters::isdigit(c))) {
|
||||
int sign = 1, base = 10, from = 0;
|
||||
if (Str::prefix_eq(S, I"-", 1)) { sign = -1; from = 1; }
|
||||
if (Str::prefix_eq(S, I"0b", 2)) { base = 2; from = 2; }
|
||||
if (Str::prefix_eq(S, I"0x", 2)) { base = 16; from = 2; }
|
||||
long long int N = 0;
|
||||
LOOP_THROUGH_TEXT(pos, S) {
|
||||
if (pos.index < from) continue;
|
||||
int c = Str::get(pos), d = 0;
|
||||
if ((c >= 'a') && (c <= 'z')) d = c-'a'+10;
|
||||
else if ((c >= 'A') && (c <= 'Z')) d = c-'A'+10;
|
||||
else if ((c >= '0') && (c <= '9')) d = c-'0';
|
||||
else return Inter::Errors::quoted(I"bad digit", S, eloc);
|
||||
if (d > base) return Inter::Errors::quoted(I"bad digit for this number base", S, eloc);
|
||||
N = base*N + (long long int) d;
|
||||
if (pos.index > 34) return Inter::Errors::quoted(I"value out of range", S, eloc);
|
||||
}
|
||||
N = sign*N;
|
||||
if (InterTypes::literal_is_in_range(N, type_wanted) == FALSE)
|
||||
return Inter::Errors::quoted(I"value out of range", S, eloc);
|
||||
|
||||
*val1 = LITERAL_IVAL; *val2 = (inter_ti) N;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return Inter::Errors::quoted(I"unrecognised value", S, eloc);
|
||||
}
|
||||
|
||||
@<Read symb@> =
|
||||
if ((InterTypes::is_enumerated(type_wanted)) && (InterSymbol::is_defined(symb) == FALSE))
|
||||
return Inter::Errors::quoted(I"undefined symbol", S, eloc);
|
||||
inter_type symbol_type = InterTypes::of_symbol(symb);
|
||||
inter_error_message *E = InterTypes::can_be_used_as(symbol_type, type_wanted, S, eloc);
|
||||
if (E) return E;
|
||||
InterValuePairs::from_symbol(I, pack, symb, val1, val2);
|
||||
return NULL;
|
||||
|
||||
@ =
|
||||
inter_ti InterValuePairs::transpose_value(inter_ti V1, inter_ti V2, inter_ti *grid, inter_ti grid_extent, inter_error_message **E) {
|
||||
switch (V1) {
|
||||
case DWORD_IVAL:
|
||||
case PDWORD_IVAL:
|
||||
case LITERAL_TEXT_IVAL:
|
||||
case REAL_IVAL:
|
||||
case GLOB_IVAL:
|
||||
case DIVIDER_IVAL:
|
||||
V2 = grid[V2];
|
||||
break;
|
||||
}
|
||||
return V2;
|
||||
}
|
||||
|
||||
inter_error_message *InterValuePairs::validate(inter_package *owner, inter_tree_node *P, int index, inter_type type) {
|
||||
inter_ti V1 = P->W.instruction[index];
|
||||
inter_ti V2 = P->W.instruction[index+1];
|
||||
inter_symbols_table *scope = InterPackage::scope(owner);
|
||||
if (scope == NULL) scope = Inode::globals(P);
|
||||
switch (V1) {
|
||||
case LITERAL_IVAL: {
|
||||
long long int I = (signed_inter_ti) V2;
|
||||
if (InterTypes::literal_is_in_range(I, type) == FALSE)
|
||||
return Inode::error(P, I"value out of range", NULL);
|
||||
return NULL;
|
||||
}
|
||||
case ALIAS_IVAL: {
|
||||
inter_symbol *symb = InterSymbolsTable::symbol_from_ID(scope, V2);
|
||||
if (symb == NULL) return Inode::error(P, I"no such symbol", NULL);
|
||||
if (InterSymbol::misc_but_undefined(symb)) return NULL;
|
||||
if (InterSymbol::defined_elsewhere(symb)) return NULL;
|
||||
if (InterTypes::expresses_value(symb) == FALSE)
|
||||
return Inode::error(P, I"nonconstant symbol", InterSymbol::identifier(symb));
|
||||
inter_type symbol_type = InterTypes::of_symbol(symb);
|
||||
return InterTypes::can_be_used_as(symbol_type, type, InterSymbol::identifier(symb), Inode::get_error_location(P));
|
||||
}
|
||||
case DWORD_IVAL:
|
||||
case PDWORD_IVAL:
|
||||
case LITERAL_TEXT_IVAL:
|
||||
case REAL_IVAL:
|
||||
case GLOB_IVAL:
|
||||
case UNDEF_IVAL:
|
||||
case DIVIDER_IVAL:
|
||||
return NULL;
|
||||
}
|
||||
return Inode::error(P, I"value of unknown category", NULL);
|
||||
}
|
|
@ -50,6 +50,32 @@ inter_error_message *Inter::Verify::symbol(inter_package *owner, inter_tree_node
|
|||
return NULL;
|
||||
}
|
||||
|
||||
inter_error_message *Inter::Verify::TID(inter_package *owner, inter_tree_node *P, inter_ti TID) {
|
||||
if (TID == 0) return NULL;
|
||||
if (InterTypes::is_valid_constructor_code(TID)) return NULL;
|
||||
return Inter::Verify::symbol(owner, P, TID, KIND_IST);
|
||||
}
|
||||
|
||||
inter_error_message *Inter::Verify::constructor_code(inter_tree_node *P, int index) {
|
||||
inter_ti ID = P->W.instruction[index];
|
||||
if (InterTypes::is_valid_constructor_code(ID) == FALSE)
|
||||
return Inode::error(P, I"unknown type constructor", NULL);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void Inter::Verify::typed_data(inter_package *owner, inter_tree_node *P,
|
||||
int field, int data_field, inter_error_message **E) {
|
||||
if (P->W.instruction[field]) {
|
||||
*E = Inter::Verify::TID(owner, P, P->W.instruction[field]);
|
||||
if (*E) return;
|
||||
if (data_field >= 0) {
|
||||
inter_type type = InterTypes::from_TID_in_field(P, field);
|
||||
*E = InterValuePairs::validate(owner, P, data_field, type);
|
||||
if (*E) return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inter_error_message *Inter::Verify::global_symbol(inter_tree_node *P, inter_ti ID, inter_ti construct) {
|
||||
inter_symbol *S = InterSymbolsTable::symbol_from_ID(Inode::globals(P), ID);
|
||||
if (S == NULL) { internal_error("IO"); return Inode::error(P, I"3no symbol for ID", NULL); }
|
||||
|
@ -97,13 +123,6 @@ inter_error_message *Inter::Verify::symbol_KOI(inter_package *owner, inter_tree_
|
|||
return NULL;
|
||||
}
|
||||
|
||||
inter_error_message *Inter::Verify::data_type(inter_tree_node *P, int index) {
|
||||
inter_ti ID = P->W.instruction[index];
|
||||
inter_data_type *idt = Inter::Types::find_by_ID(ID);
|
||||
if (idt == NULL) return Inode::error(P, I"unknown data type", NULL);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void Inter::Verify::writer(OUTPUT_STREAM, char *format_string, void *vI) {
|
||||
inter_tree_node *F = (inter_tree_node *) vI;
|
||||
if (F == NULL) { WRITE("<no frame>"); return; }
|
||||
|
|
|
@ -47,7 +47,7 @@ void Inter::Constant::read(inter_construct *IC, inter_bookmark *IBM, inter_line_
|
|||
name_text = mr3.exp[1];
|
||||
}
|
||||
|
||||
inter_type con_type = Inter::Types::parse(InterBookmark::scope(IBM), eloc, kind_text, E);
|
||||
inter_type con_type = InterTypes::parse_simple(InterBookmark::scope(IBM), eloc, kind_text, E);
|
||||
if (*E) return;
|
||||
|
||||
inter_symbol *con_name = TextualInter::new_symbol(eloc, InterBookmark::scope(IBM), name_text, E);
|
||||
|
@ -65,7 +65,7 @@ void Inter::Constant::read(inter_construct *IC, inter_bookmark *IBM, inter_line_
|
|||
else if (Regexp::match(&mr2, S, L"quotient{ (%c*) }")) op = CONSTANT_QUOTIENT_LIST;
|
||||
if (op != 0) {
|
||||
inter_tree_node *P =
|
||||
Inode::new_with_3_data_fields(IBM, CONSTANT_IST, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, con_name), Inter::Types::to_TID(IBM, con_type), op, eloc, (inter_ti) ilp->indent_level);
|
||||
Inode::new_with_3_data_fields(IBM, CONSTANT_IST, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, con_name), InterTypes::to_TID_wrt_bookmark(IBM, con_type), op, eloc, (inter_ti) ilp->indent_level);
|
||||
*E = InterConstruct::verify_construct(InterBookmark::package(IBM), P);
|
||||
if (*E) return;
|
||||
text_stream *conts = mr2.exp[0];
|
||||
|
@ -84,10 +84,10 @@ void Inter::Constant::read(inter_construct *IC, inter_bookmark *IBM, inter_line_
|
|||
}
|
||||
|
||||
if (Regexp::match(&mr2, S, L"{ (%c*) }")) {
|
||||
inter_type conts_type = Inter::Types::type_operand(con_type, 0);
|
||||
inter_type conts_type = InterTypes::type_operand(con_type, 0);
|
||||
inter_ti form = CONSTANT_INDIRECT_LIST;
|
||||
inter_tree_node *P =
|
||||
Inode::new_with_3_data_fields(IBM, CONSTANT_IST, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, con_name), Inter::Types::to_TID(IBM, con_type), form, eloc, (inter_ti) ilp->indent_level);
|
||||
Inode::new_with_3_data_fields(IBM, CONSTANT_IST, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, con_name), InterTypes::to_TID_wrt_bookmark(IBM, con_type), form, eloc, (inter_ti) ilp->indent_level);
|
||||
*E = InterConstruct::verify_construct(InterBookmark::package(IBM), P);
|
||||
if (*E) return;
|
||||
text_stream *conts = mr2.exp[0];
|
||||
|
@ -107,19 +107,19 @@ void Inter::Constant::read(inter_construct *IC, inter_bookmark *IBM, inter_line_
|
|||
|
||||
if (Regexp::match(&mr2, S, L"struct{ (%c*) }")) {
|
||||
inter_tree_node *P =
|
||||
Inode::new_with_3_data_fields(IBM, CONSTANT_IST, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, con_name), Inter::Types::to_TID(IBM, con_type), CONSTANT_STRUCT, eloc, (inter_ti) ilp->indent_level);
|
||||
int arity = Inter::Types::type_arity(con_type);
|
||||
Inode::new_with_3_data_fields(IBM, CONSTANT_IST, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, con_name), InterTypes::to_TID_wrt_bookmark(IBM, con_type), CONSTANT_STRUCT, eloc, (inter_ti) ilp->indent_level);
|
||||
int arity = InterTypes::type_arity(con_type);
|
||||
int counter = 0;
|
||||
text_stream *conts = mr2.exp[0];
|
||||
match_results mr3 = Regexp::create_mr();
|
||||
while (Regexp::match(&mr3, conts, L"(%c*?), (%c+)")) {
|
||||
inter_type conts_type = Inter::Types::type_operand(con_type, counter++);
|
||||
inter_type conts_type = InterTypes::type_operand(con_type, counter++);
|
||||
if (Inter::Constant::append(ilp->line, eloc, IBM, conts_type, P, mr3.exp[0], E) == FALSE)
|
||||
return;
|
||||
Str::copy(conts, mr3.exp[1]);
|
||||
}
|
||||
if (Regexp::match(&mr3, conts, L" *(%c*?) *")) {
|
||||
inter_type conts_type = Inter::Types::type_operand(con_type, counter++);
|
||||
inter_type conts_type = InterTypes::type_operand(con_type, counter++);
|
||||
if (Inter::Constant::append(ilp->line, eloc, IBM, conts_type, P, mr3.exp[0], E) == FALSE)
|
||||
return;
|
||||
}
|
||||
|
@ -132,18 +132,18 @@ void Inter::Constant::read(inter_construct *IC, inter_bookmark *IBM, inter_line_
|
|||
|
||||
if (Regexp::match(&mr2, S, L"table{ (%c*) }")) {
|
||||
inter_tree_node *P =
|
||||
Inode::new_with_3_data_fields(IBM, CONSTANT_IST, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, con_name), Inter::Types::to_TID(IBM, con_type), CONSTANT_TABLE, eloc, (inter_ti) ilp->indent_level);
|
||||
Inode::new_with_3_data_fields(IBM, CONSTANT_IST, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, con_name), InterTypes::to_TID_wrt_bookmark(IBM, con_type), CONSTANT_TABLE, eloc, (inter_ti) ilp->indent_level);
|
||||
*E = InterConstruct::verify_construct(InterBookmark::package(IBM), P);
|
||||
if (*E) return;
|
||||
text_stream *conts = mr2.exp[0];
|
||||
match_results mr3 = Regexp::create_mr();
|
||||
while (Regexp::match(&mr3, conts, L"(%c*?), (%c+)")) {
|
||||
if (Inter::Constant::append(ilp->line, eloc, IBM, Inter::Types::untyped(), P, mr3.exp[0], E) == FALSE)
|
||||
if (Inter::Constant::append(ilp->line, eloc, IBM, InterTypes::untyped(), P, mr3.exp[0], E) == FALSE)
|
||||
return;
|
||||
Str::copy(conts, mr3.exp[1]);
|
||||
}
|
||||
if (Regexp::match(&mr3, conts, L" *(%c*?) *")) {
|
||||
if (Inter::Constant::append(ilp->line, eloc, IBM, Inter::Types::untyped(), P, mr3.exp[0], E) == FALSE)
|
||||
if (Inter::Constant::append(ilp->line, eloc, IBM, InterTypes::untyped(), P, mr3.exp[0], E) == FALSE)
|
||||
return;
|
||||
}
|
||||
NodePlacement::move_to_moving_bookmark(P, IBM);
|
||||
|
@ -160,7 +160,7 @@ void Inter::Constant::read(inter_construct *IC, inter_bookmark *IBM, inter_line_
|
|||
}
|
||||
DISCARD_TEXT(parsed_text)
|
||||
if (*E) return;
|
||||
*E = Inter::Constant::new_textual(IBM, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, con_name), Inter::Types::to_TID(IBM, con_type), ID, (inter_ti) ilp->indent_level, eloc);
|
||||
*E = Inter::Constant::new_textual(IBM, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, con_name), InterTypes::to_TID_wrt_bookmark(IBM, con_type), ID, (inter_ti) ilp->indent_level, eloc);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -170,17 +170,17 @@ void Inter::Constant::read(inter_construct *IC, inter_bookmark *IBM, inter_line_
|
|||
if (block == NULL) {
|
||||
*E = Inter::Errors::quoted(I"no such function body", fname, eloc); return;
|
||||
}
|
||||
*E = Inter::Constant::new_function(IBM, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, con_name), Inter::Types::to_TID(IBM, con_type), block, (inter_ti) ilp->indent_level, eloc);
|
||||
*E = Inter::Constant::new_function(IBM, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, con_name), InterTypes::to_TID_wrt_bookmark(IBM, con_type), block, (inter_ti) ilp->indent_level, eloc);
|
||||
return;
|
||||
}
|
||||
|
||||
inter_ti con_val1 = 0;
|
||||
inter_ti con_val2 = 0;
|
||||
|
||||
*E = Inter::Types::read_data_pair(ilp->line, eloc, IBM, con_type, S, &con_val1, &con_val2, InterBookmark::scope(IBM));
|
||||
*E = InterValuePairs::parse(ilp->line, eloc, IBM, con_type, S, &con_val1, &con_val2, InterBookmark::scope(IBM));
|
||||
if (*E) return;
|
||||
|
||||
*E = Inter::Constant::new_numerical(IBM, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, con_name), Inter::Types::to_TID(IBM, con_type), con_val1, con_val2, (inter_ti) ilp->indent_level, eloc);
|
||||
*E = Inter::Constant::new_numerical(IBM, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, con_name), InterTypes::to_TID_wrt_bookmark(IBM, con_type), con_val1, con_val2, (inter_ti) ilp->indent_level, eloc);
|
||||
}
|
||||
|
||||
inter_error_message *Inter::Constant::parse_text(text_stream *parsed_text, text_stream *S, int from, int to, inter_error_location *eloc) {
|
||||
|
@ -262,21 +262,8 @@ int Inter::Constant::append(text_stream *line, inter_error_location *eloc, inter
|
|||
*E = NULL;
|
||||
inter_ti con_val1 = 0;
|
||||
inter_ti con_val2 = 0;
|
||||
/* if (Inter::Types::conceptual_type(conts_type) == NULL) {
|
||||
inter_symbol *tc = TextualInter::find_symbol(IBM, eloc, S, CONSTANT_IST, E);
|
||||
if (*E) return FALSE;
|
||||
if (Inter::Kind::constructor(Inter::Constant::kind_of(tc)) == COLUMN_IDT) {
|
||||
Inter::Types::symbol_to_pair(InterBookmark::tree(IBM), InterBookmark::package(IBM), tc, &con_val1, &con_val2);
|
||||
} else {
|
||||
*E = Inter::Errors::quoted(I"not a table column constant", S, eloc);
|
||||
return FALSE;
|
||||
}
|
||||
} else {
|
||||
*/
|
||||
// WRITE_TO(STDERR, "Line <%S> S = <%S>\n", line, S);
|
||||
*E = Inter::Types::read_data_pair(line, eloc, IBM, conts_type, S, &con_val1, &con_val2, InterBookmark::scope(IBM));
|
||||
if (*E) return FALSE;
|
||||
// }
|
||||
*E = InterValuePairs::parse(line, eloc, IBM, conts_type, S, &con_val1, &con_val2, InterBookmark::scope(IBM));
|
||||
if (*E) return FALSE;
|
||||
Inode::extend_instruction_by(P, 2);
|
||||
P->W.instruction[P->W.extent-2] = con_val1;
|
||||
P->W.instruction[P->W.extent-1] = con_val2;
|
||||
|
@ -289,7 +276,7 @@ void Inter::Constant::transpose(inter_construct *IC, inter_tree_node *P, inter_t
|
|||
|
||||
switch (P->W.instruction[FORMAT_CONST_IFLD]) {
|
||||
case CONSTANT_DIRECT:
|
||||
P->W.instruction[DATA_CONST_IFLD+1] = Inter::Types::transpose_value(P->W.instruction[DATA_CONST_IFLD], P->W.instruction[DATA_CONST_IFLD+1], grid, grid_extent, E);
|
||||
P->W.instruction[DATA_CONST_IFLD+1] = InterValuePairs::transpose_value(P->W.instruction[DATA_CONST_IFLD], P->W.instruction[DATA_CONST_IFLD+1], grid, grid_extent, E);
|
||||
break;
|
||||
case CONSTANT_INDIRECT_TEXT:
|
||||
P->W.instruction[DATA_CONST_IFLD] = grid[P->W.instruction[DATA_CONST_IFLD]];
|
||||
|
@ -302,7 +289,7 @@ void Inter::Constant::transpose(inter_construct *IC, inter_tree_node *P, inter_t
|
|||
case CONSTANT_STRUCT:
|
||||
case CONSTANT_TABLE:
|
||||
for (int i=DATA_CONST_IFLD; i<P->W.extent; i=i+2) {
|
||||
P->W.instruction[i+1] = Inter::Types::transpose_value(P->W.instruction[i], P->W.instruction[i+1], grid, grid_extent, E);
|
||||
P->W.instruction[i+1] = InterValuePairs::transpose_value(P->W.instruction[i], P->W.instruction[i+1], grid, grid_extent, E);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -311,13 +298,13 @@ void Inter::Constant::transpose(inter_construct *IC, inter_tree_node *P, inter_t
|
|||
void Inter::Constant::verify(inter_construct *IC, inter_tree_node *P, inter_package *owner, inter_error_message **E) {
|
||||
*E = Inter::Verify::defn(owner, P, DEFN_CONST_IFLD);
|
||||
if (*E) return;
|
||||
Inter::Types::verify_type_field(owner, P, KIND_CONST_IFLD, -1, E);
|
||||
Inter::Verify::typed_data(owner, P, KIND_CONST_IFLD, -1, E);
|
||||
if (*E) return;
|
||||
inter_type it = Inter::Types::from_TID(P, KIND_CONST_IFLD);
|
||||
inter_type it = InterTypes::from_TID_in_field(P, KIND_CONST_IFLD);
|
||||
switch (P->W.instruction[FORMAT_CONST_IFLD]) {
|
||||
case CONSTANT_DIRECT:
|
||||
if (P->W.extent != DATA_CONST_IFLD + 2) { *E = Inode::error(P, I"extent wrong", NULL); return; }
|
||||
*E = Inter::Types::validate_pair(owner, P, DATA_CONST_IFLD, it);
|
||||
*E = InterValuePairs::validate(owner, P, DATA_CONST_IFLD, it);
|
||||
if (*E) return;
|
||||
break;
|
||||
case CONSTANT_SUM_LIST:
|
||||
|
@ -326,7 +313,7 @@ void Inter::Constant::verify(inter_construct *IC, inter_tree_node *P, inter_pack
|
|||
case CONSTANT_QUOTIENT_LIST:
|
||||
if ((P->W.extent % 2) != 1) { *E = Inode::error(P, I"extent wrong", NULL); return; }
|
||||
for (int i=DATA_CONST_IFLD; i<P->W.extent; i=i+2) {
|
||||
*E = Inter::Types::validate_pair(owner, P, i, it);
|
||||
*E = InterValuePairs::validate(owner, P, i, it);
|
||||
if (*E) return;
|
||||
}
|
||||
break;
|
||||
|
@ -337,9 +324,9 @@ void Inter::Constant::verify(inter_construct *IC, inter_tree_node *P, inter_pack
|
|||
inter_ti V2 = P->W.instruction[i+1];
|
||||
inter_symbol *symb = InterSymbolsTable::symbol_from_data_pair(V1, V2, InterPackage::scope(owner));
|
||||
if (symb) {
|
||||
inter_type type = Inter::Types::of_symbol(symb);
|
||||
if ((type.underlying_data->type_ID != COLUMN_IDT) &&
|
||||
(type.underlying_data->type_ID != UNCHECKED_IDT)) {
|
||||
inter_type type = InterTypes::of_symbol(symb);
|
||||
inter_ti constructor = InterTypes::constructor_code(type);
|
||||
if ((constructor != COLUMN_ITCONC) && (constructor != UNCHECKED_ITCONC)) {
|
||||
*E = Inode::error(P, I"not a table column constant", NULL); return;
|
||||
}
|
||||
} else {
|
||||
|
@ -349,30 +336,31 @@ void Inter::Constant::verify(inter_construct *IC, inter_tree_node *P, inter_pack
|
|||
break;
|
||||
case CONSTANT_INDIRECT_LIST: {
|
||||
if ((P->W.extent % 2) != 1) { *E = Inode::error(P, I"extent wrong", NULL); return; }
|
||||
inter_data_type *idt = Inter::Types::data_format(it);
|
||||
if ((idt) && ((idt->type_ID == LIST_IDT) || (idt->type_ID == RULEBOOK_IDT) || (idt->type_ID == COLUMN_IDT))) {
|
||||
inter_type conts_type = Inter::Types::type_operand(it, 0);
|
||||
inter_ti constructor = InterTypes::constructor_code(it);
|
||||
if ((constructor == LIST_ITCONC) || (constructor == RULEBOOK_ITCONC) || (constructor == COLUMN_ITCONC)) {
|
||||
inter_type conts_type = InterTypes::type_operand(it, 0);
|
||||
for (int i=DATA_CONST_IFLD; i<P->W.extent; i=i+2) {
|
||||
*E = Inter::Types::validate_pair(owner, P, i, conts_type); if (*E) return;
|
||||
*E = InterValuePairs::validate(owner, P, i, conts_type); if (*E) return;
|
||||
}
|
||||
} else if (idt) {
|
||||
{ *E = Inode::error(P, I"not a list", InterSymbol::identifier(Inter::Types::conceptual_type(it))); return; }
|
||||
} else {
|
||||
*E = Inode::error(P, I"not a list", NULL);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case CONSTANT_STRUCT: {
|
||||
if ((P->W.extent % 2) != 1) { *E = Inode::error(P, I"extent odd", NULL); return; }
|
||||
inter_data_type *idt = Inter::Types::data_format(it);
|
||||
if ((idt) && (idt->type_ID == STRUCT_IDT)) {
|
||||
int arity = Inter::Kind::arity(Inter::Types::conceptual_type(it));
|
||||
inter_ti constructor = InterTypes::constructor_code(it);
|
||||
if (constructor == STRUCT_ITCONC) {
|
||||
int arity = InterTypes::type_arity(it);
|
||||
int given = (P->W.extent - DATA_CONST_IFLD)/2;
|
||||
if (arity != given) { *E = Inode::error(P, I"extent not same size as struct definition", NULL); return; }
|
||||
for (int i=DATA_CONST_IFLD, counter = 0; i<P->W.extent; i=i+2) {
|
||||
inter_type conts_type = Inter::Types::type_operand(it, counter++);
|
||||
*E = Inter::Types::validate_pair(owner, P, i, conts_type); if (*E) return;
|
||||
inter_type conts_type = InterTypes::type_operand(it, counter++);
|
||||
*E = InterValuePairs::validate(owner, P, i, conts_type); if (*E) return;
|
||||
}
|
||||
} else if (idt) {
|
||||
{ *E = Inode::error(P, I"not a struct", NULL); return; }
|
||||
} else {
|
||||
*E = Inode::error(P, I"not a struct", NULL); return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -397,11 +385,11 @@ void Inter::Constant::write(inter_construct *IC, OUTPUT_STREAM, inter_tree_node
|
|||
if (SymbolAnnotation::get_b(con_name, HEX_IANN)) hex = TRUE;
|
||||
if (con_name) {
|
||||
WRITE("constant ");
|
||||
Inter::Types::write_type_field(OUT, P, KIND_CONST_IFLD);
|
||||
InterTypes::write_optional_type_marker(OUT, P, KIND_CONST_IFLD);
|
||||
WRITE("%S = ", InterSymbol::identifier(con_name));
|
||||
switch (P->W.instruction[FORMAT_CONST_IFLD]) {
|
||||
case CONSTANT_DIRECT:
|
||||
Inter::Types::write_pair(OUT, P,
|
||||
InterValuePairs::write(OUT, P,
|
||||
P->W.instruction[DATA_CONST_IFLD], P->W.instruction[DATA_CONST_IFLD+1], InterPackage::scope_of(P), hex);
|
||||
break;
|
||||
case CONSTANT_TABLE:
|
||||
|
@ -419,7 +407,7 @@ void Inter::Constant::write(inter_construct *IC, OUTPUT_STREAM, inter_tree_node
|
|||
for (int i=DATA_CONST_IFLD; i<P->W.extent; i=i+2) {
|
||||
if (i > DATA_CONST_IFLD) WRITE(",");
|
||||
WRITE(" ");
|
||||
Inter::Types::write_pair(OUT, P, P->W.instruction[i], P->W.instruction[i+1], InterPackage::scope_of(P), hex);
|
||||
InterValuePairs::write(OUT, P, P->W.instruction[i], P->W.instruction[i+1], InterPackage::scope_of(P), hex);
|
||||
}
|
||||
WRITE(" }");
|
||||
break;
|
||||
|
@ -429,7 +417,7 @@ void Inter::Constant::write(inter_construct *IC, OUTPUT_STREAM, inter_tree_node
|
|||
for (int i=DATA_CONST_IFLD; i<P->W.extent; i=i+2) {
|
||||
if (i > DATA_CONST_IFLD) WRITE(",");
|
||||
WRITE(" ");
|
||||
Inter::Types::write_pair(OUT, P, P->W.instruction[i], P->W.instruction[i+1], InterPackage::scope_of(P), hex);
|
||||
InterValuePairs::write(OUT, P, P->W.instruction[i], P->W.instruction[i+1], InterPackage::scope_of(P), hex);
|
||||
}
|
||||
WRITE(" }");
|
||||
break;
|
||||
|
@ -455,11 +443,11 @@ void Inter::Constant::write(inter_construct *IC, OUTPUT_STREAM, inter_tree_node
|
|||
}
|
||||
|
||||
inter_type Inter::Constant::type_of(inter_symbol *con_symbol) {
|
||||
if (con_symbol == NULL) return Inter::Types::untyped();
|
||||
if (con_symbol == NULL) return InterTypes::untyped();
|
||||
inter_tree_node *D = InterSymbol::definition(con_symbol);
|
||||
if (D == NULL) return Inter::Types::untyped();
|
||||
if (D->W.instruction[ID_IFLD] != CONSTANT_IST) return Inter::Types::untyped();
|
||||
return Inter::Types::from_TID(D, KIND_CONST_IFLD);
|
||||
if (D == NULL) return InterTypes::untyped();
|
||||
if (D->W.instruction[ID_IFLD] != CONSTANT_IST) return InterTypes::untyped();
|
||||
return InterTypes::from_TID_in_field(D, KIND_CONST_IFLD);
|
||||
}
|
||||
|
||||
inter_package *Inter::Constant::code_block(inter_symbol *con_symbol) {
|
||||
|
@ -533,7 +521,7 @@ int Inter::Constant::constant_depth_r(inter_symbol *con) {
|
|||
|
||||
inter_ti Inter::Constant::evaluate(inter_symbols_table *T, inter_ti val1, inter_ti val2) {
|
||||
if (val1 == LITERAL_IVAL) return val2;
|
||||
if (Inter::Types::pair_holds_symbol(val1, val2)) {
|
||||
if (InterValuePairs::holds_symbol(val1, val2)) {
|
||||
inter_symbol *aliased = InterSymbolsTable::symbol_from_data_pair(val1, val2, T);
|
||||
if (aliased == NULL) internal_error("bad aliased symbol");
|
||||
inter_tree_node *D = aliased->definition;
|
||||
|
|
|
@ -34,7 +34,7 @@ void Inter::DefaultValue::read(inter_construct *IC, inter_bookmark *IBM, inter_l
|
|||
|
||||
inter_ti con_val1 = 0;
|
||||
inter_ti con_val2 = 0;
|
||||
*E = Inter::Types::read_data_pair(ilp->line, eloc, IBM, Inter::Types::from_symbol(con_kind), ilp->mr.exp[1], &con_val1, &con_val2, InterBookmark::scope(IBM));
|
||||
*E = InterValuePairs::parse(ilp->line, eloc, IBM, InterTypes::from_type_name(con_kind), ilp->mr.exp[1], &con_val1, &con_val2, InterBookmark::scope(IBM));
|
||||
if (*E) return;
|
||||
|
||||
*E = Inter::DefaultValue::new(IBM, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, con_kind), con_val1, con_val2, (inter_ti) ilp->indent_level, eloc);
|
||||
|
@ -56,7 +56,7 @@ void Inter::DefaultValue::write(inter_construct *IC, OUTPUT_STREAM, inter_tree_n
|
|||
inter_symbol *con_kind = InterSymbolsTable::symbol_from_ID_at_node(P, KIND_DEF_IFLD);
|
||||
if (con_kind) {
|
||||
WRITE("defaultvalue %S = ", InterSymbol::identifier(con_kind));
|
||||
Inter::Types::write_pair(OUT, P,
|
||||
InterValuePairs::write(OUT, P,
|
||||
P->W.instruction[VAL1_DEF_IFLD], P->W.instruction[VAL1_DEF_IFLD+1], InterPackage::scope_of(P), FALSE);
|
||||
} else {
|
||||
*E = Inode::error(P, I"defaultvalue can't be written", NULL);
|
||||
|
|
|
@ -45,13 +45,13 @@ void Inter::Instance::read(inter_construct *IC, inter_bookmark *IBM, inter_line_
|
|||
inter_symbol *inst_kind = TextualInter::find_symbol(IBM, eloc, ktext, KIND_IST, E);
|
||||
if (*E) return;
|
||||
|
||||
inter_data_type *idt = Inter::Kind::data_type(inst_kind);
|
||||
if (Inter::Types::is_enumerated(idt) == FALSE)
|
||||
inter_type inst_type = InterTypes::from_type_name(inst_kind);
|
||||
if (InterTypes::is_enumerated(inst_type) == FALSE)
|
||||
{ *E = Inter::Errors::quoted(I"not a kind which has instances", ilp->mr.exp[1], eloc); return; }
|
||||
|
||||
inter_ti v1 = UNDEF_IVAL, v2 = 0;
|
||||
if (vtext) {
|
||||
*E = Inter::Types::read_data_pair(ilp->line, eloc, IBM, Inter::Types::untyped(), vtext, &v1, &v2, InterBookmark::scope(IBM));
|
||||
*E = InterValuePairs::parse(ilp->line, eloc, IBM, InterTypes::untyped(), vtext, &v1, &v2, InterBookmark::scope(IBM));
|
||||
if (*E) return;
|
||||
}
|
||||
*E = Inter::Instance::new(IBM, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, inst_name), InterSymbolsTable::id_from_symbol_at_bookmark(IBM, inst_kind), v1, v2, (inter_ti) ilp->indent_level, eloc);
|
||||
|
@ -79,14 +79,14 @@ void Inter::Instance::verify(inter_construct *IC, inter_tree_node *P, inter_pack
|
|||
inter_symbol *inst_name = InterSymbolsTable::symbol_from_ID(InterPackage::scope(owner), P->W.instruction[DEFN_INST_IFLD]);
|
||||
*E = Inter::Verify::symbol(owner, P, P->W.instruction[KIND_INST_IFLD], KIND_IST); if (*E) return;
|
||||
inter_symbol *inst_kind = InterSymbolsTable::symbol_from_ID(InterPackage::scope(owner), P->W.instruction[KIND_INST_IFLD]);
|
||||
inter_data_type *idt = Inter::Kind::data_type(inst_kind);
|
||||
if (Inter::Types::is_enumerated(idt)) {
|
||||
inter_type inst_type = InterTypes::from_type_name(inst_kind);
|
||||
if (InterTypes::is_enumerated(inst_type)) {
|
||||
if (P->W.instruction[VAL1_INST_IFLD] == UNDEF_IVAL) {
|
||||
P->W.instruction[VAL1_INST_IFLD] = LITERAL_IVAL;
|
||||
P->W.instruction[VAL2_INST_IFLD] = Inter::Kind::next_enumerated_value(inst_kind);
|
||||
}
|
||||
} else { *E = Inode::error(P, I"not a kind which has instances", NULL); return; }
|
||||
*E = Inter::Types::validate_pair(owner, P, VAL1_INST_IFLD, Inter::Types::from_symbol(inst_kind)); if (*E) return;
|
||||
*E = InterValuePairs::validate(owner, P, VAL1_INST_IFLD, InterTypes::from_type_name(inst_kind)); if (*E) return;
|
||||
|
||||
inter_ti vcount = Inode::bump_verification_count(P);
|
||||
if (vcount == 0) {
|
||||
|
@ -105,12 +105,9 @@ void Inter::Instance::write(inter_construct *IC, OUTPUT_STREAM, inter_tree_node
|
|||
inter_symbol *inst_name = InterSymbolsTable::symbol_from_ID_at_node(P, DEFN_INST_IFLD);
|
||||
inter_symbol *inst_kind = InterSymbolsTable::symbol_from_ID_at_node(P, KIND_INST_IFLD);
|
||||
if ((inst_name) && (inst_kind)) {
|
||||
inter_data_type *idt = Inter::Kind::data_type(inst_kind);
|
||||
if (idt) {
|
||||
WRITE("instance %S %S = ", InterSymbol::identifier(inst_name), InterSymbol::identifier(inst_kind));
|
||||
Inter::Types::write_pair(OUT, P,
|
||||
P->W.instruction[VAL1_INST_IFLD], P->W.instruction[VAL2_INST_IFLD], InterPackage::scope_of(P), FALSE);
|
||||
} else { *E = Inode::error(P, I"instance with bad data type", NULL); return; }
|
||||
WRITE("instance %S %S = ", InterSymbol::identifier(inst_name), InterSymbol::identifier(inst_kind));
|
||||
InterValuePairs::write(OUT, P,
|
||||
P->W.instruction[VAL1_INST_IFLD], P->W.instruction[VAL2_INST_IFLD], InterPackage::scope_of(P), FALSE);
|
||||
} else { *E = Inode::error(P, I"bad instance", NULL); return; }
|
||||
SymbolAnnotation::write_annotations(OUT, P, inst_name);
|
||||
}
|
||||
|
@ -123,13 +120,13 @@ inter_ti Inter::Instance::properties_list(inter_symbol *inst_name) {
|
|||
}
|
||||
|
||||
inter_type Inter::Instance::type_of(inter_symbol *inst_name) {
|
||||
if (inst_name == NULL) return Inter::Types::untyped();
|
||||
if (inst_name == NULL) return InterTypes::untyped();
|
||||
inter_tree_node *D = InterSymbol::definition(inst_name);
|
||||
if (D == NULL) return Inter::Types::untyped();
|
||||
if (D->W.instruction[ID_IFLD] != INSTANCE_IST) return Inter::Types::untyped();
|
||||
return Inter::Types::from_symbol(InterSymbolsTable::symbol_from_ID_at_node(D, KIND_INST_IFLD));
|
||||
if (D == NULL) return InterTypes::untyped();
|
||||
if (D->W.instruction[ID_IFLD] != INSTANCE_IST) return InterTypes::untyped();
|
||||
return InterTypes::from_type_name(InterSymbolsTable::symbol_from_ID_at_node(D, KIND_INST_IFLD));
|
||||
}
|
||||
|
||||
inter_symbol *Inter::Instance::kind_of(inter_symbol *inst_name) {
|
||||
return Inter::Types::conceptual_type(Inter::Instance::type_of(inst_name));
|
||||
return InterTypes::type_name(Inter::Instance::type_of(inst_name));
|
||||
}
|
||||
|
|
|
@ -30,8 +30,6 @@ void Inter::Kind::define(void) {
|
|||
|
||||
@d MIN_EXTENT_KIND_IFR 9
|
||||
|
||||
@d MAX_ICON_OPERANDS 128
|
||||
|
||||
=
|
||||
void Inter::Kind::read(inter_construct *IC, inter_bookmark *IBM, inter_line_parse *ilp, inter_error_location *eloc, inter_error_message **E) {
|
||||
*E = InterConstruct::check_level_in_package(IBM, KIND_IST, ilp->indent_level, eloc);
|
||||
|
@ -40,108 +38,33 @@ void Inter::Kind::read(inter_construct *IC, inter_bookmark *IBM, inter_line_pars
|
|||
inter_symbol *symb = TextualInter::new_symbol(eloc, InterBookmark::scope(IBM), ilp->mr.exp[0], E);
|
||||
if (*E) return;
|
||||
|
||||
inter_semisimple_type_description parsed_description;
|
||||
InterTypes::initialise_isstd(&parsed_description);
|
||||
match_results mr2 = Regexp::create_mr();
|
||||
inter_ti constructor = UNCHECKED_IDT;
|
||||
int arity = 0;
|
||||
inter_ti operands[MAX_ICON_OPERANDS];
|
||||
inter_symbol *super_kind = NULL;
|
||||
for (int i=0; i<MAX_ICON_OPERANDS; i++) operands[i] = 0;
|
||||
if (Regexp::match(&mr2, ilp->mr.exp[1], L"<= (%i+)")) {
|
||||
super_kind = TextualInter::find_symbol(IBM, eloc, mr2.exp[0], KIND_IST, E);
|
||||
if (*E) return;
|
||||
if (Inter::Types::is_enumerated(Inter::Kind::data_type(super_kind)) == FALSE)
|
||||
if ((*E == NULL) &&
|
||||
(InterTypes::is_enumerated(InterTypes::from_type_name(super_kind)) == FALSE))
|
||||
{ *E = Inter::Errors::quoted(I"not a kind which can have subkinds", mr2.exp[0], eloc); return; }
|
||||
constructor = ENUM_IDT;
|
||||
} else if (Regexp::match(&mr2, ilp->mr.exp[1], L"rulebook of (%i+)")) {
|
||||
constructor = RULEBOOK_IDT;
|
||||
inter_symbol *conts_kind = TextualInter::find_symbol(IBM, eloc, mr2.exp[0], KIND_IST, E);
|
||||
if (*E) return;
|
||||
operands[0] = InterSymbolsTable::id_from_symbol_at_bookmark(IBM, conts_kind); arity = 1;
|
||||
} else if (Regexp::match(&mr2, ilp->mr.exp[1], L"list of (%i+)")) {
|
||||
constructor = LIST_IDT;
|
||||
inter_symbol *conts_kind = TextualInter::find_symbol(IBM, eloc, mr2.exp[0], KIND_IST, E);
|
||||
if (*E) return;
|
||||
operands[0] = InterSymbolsTable::id_from_symbol_at_bookmark(IBM, conts_kind); arity = 1;
|
||||
} else if (Regexp::match(&mr2, ilp->mr.exp[1], L"relation of (%i+) to (%i+)")) {
|
||||
constructor = RELATION_IDT;
|
||||
inter_symbol *X_kind = TextualInter::find_symbol(IBM, eloc, mr2.exp[0], KIND_IST, E);
|
||||
if (*E) return;
|
||||
inter_symbol *Y_kind = TextualInter::find_symbol(IBM, eloc, mr2.exp[1], KIND_IST, E);
|
||||
if (*E) return;
|
||||
operands[0] = InterSymbolsTable::id_from_symbol_at_bookmark(IBM, X_kind);
|
||||
operands[1] = InterSymbolsTable::id_from_symbol_at_bookmark(IBM, Y_kind);
|
||||
arity = 2;
|
||||
} else if (Regexp::match(&mr2, ilp->mr.exp[1], L"column of (%i+)")) {
|
||||
constructor = COLUMN_IDT;
|
||||
inter_symbol *conts_kind = TextualInter::find_symbol(IBM, eloc, mr2.exp[0], KIND_IST, E);
|
||||
if (*E) return;
|
||||
operands[0] = InterSymbolsTable::id_from_symbol_at_bookmark(IBM, conts_kind); arity = 1;
|
||||
} else if (Regexp::match(&mr2, ilp->mr.exp[1], L"description of (%i+)")) {
|
||||
constructor = DESCRIPTION_IDT;
|
||||
inter_symbol *conts_kind = TextualInter::find_symbol(IBM, eloc, mr2.exp[0], KIND_IST, E);
|
||||
if (*E) return;
|
||||
operands[0] = InterSymbolsTable::id_from_symbol_at_bookmark(IBM, conts_kind); arity = 1;
|
||||
} else if ((Regexp::match(&mr2, ilp->mr.exp[1], L"(function) (%c+) -> (%i+)")) ||
|
||||
(Regexp::match(&mr2, ilp->mr.exp[1], L"(rule) (%c+) -> (%i+)"))) {
|
||||
if (Str::eq(mr2.exp[0], I"function")) constructor = FUNCTION_IDT;
|
||||
else constructor = RULE_IDT;
|
||||
text_stream *from = mr2.exp[1];
|
||||
text_stream *to = mr2.exp[2];
|
||||
if (Str::eq(from, I"void")) {
|
||||
if (arity >= MAX_ICON_OPERANDS) { *E = Inter::Errors::plain(I"too many args", eloc); return; }
|
||||
operands[arity++] = 0;
|
||||
} else {
|
||||
match_results mr3 = Regexp::create_mr();
|
||||
while (Regexp::match(&mr3, from, L" *(%i+) *(%c*)")) {
|
||||
inter_symbol *arg_kind = TextualInter::find_symbol(IBM, eloc, mr3.exp[0], KIND_IST, E);
|
||||
if (*E) return;
|
||||
Str::copy(from, mr3.exp[1]);
|
||||
if (arity >= MAX_ICON_OPERANDS) { *E = Inter::Errors::plain(I"too many args", eloc); return; }
|
||||
operands[arity++] = InterSymbolsTable::id_from_symbol_at_bookmark(IBM, arg_kind);
|
||||
}
|
||||
}
|
||||
if (Str::eq(to, I"void")) {
|
||||
if (arity >= MAX_ICON_OPERANDS) { *E = Inter::Errors::plain(I"too many args", eloc); return; }
|
||||
operands[arity++] = 0;
|
||||
} else {
|
||||
inter_symbol *res_kind = TextualInter::find_symbol(IBM, eloc, to, KIND_IST, E);
|
||||
if (*E) return;
|
||||
if (arity >= MAX_ICON_OPERANDS) { *E = Inter::Errors::plain(I"too many args", eloc); return; }
|
||||
operands[arity++] = InterSymbolsTable::id_from_symbol_at_bookmark(IBM, res_kind);
|
||||
}
|
||||
} else if (Regexp::match(&mr2, ilp->mr.exp[1], L"struct (%c+)")) {
|
||||
constructor = STRUCT_IDT;
|
||||
text_stream *elements = mr2.exp[0];
|
||||
match_results mr3 = Regexp::create_mr();
|
||||
while (Regexp::match(&mr3, elements, L" *(%i+) *(%c*)")) {
|
||||
inter_symbol *arg_kind = TextualInter::find_symbol(IBM, eloc, mr3.exp[0], KIND_IST, E);
|
||||
if (*E) return;
|
||||
Str::copy(elements, mr3.exp[1]);
|
||||
if (arity >= MAX_ICON_OPERANDS) { *E = Inter::Errors::plain(I"too many args", eloc); return; }
|
||||
operands[arity++] = InterSymbolsTable::id_from_symbol_at_bookmark(IBM, arg_kind);
|
||||
}
|
||||
parsed_description.constructor_code = ENUM_ITCONC;
|
||||
parsed_description.arity = 0;
|
||||
} else {
|
||||
inter_data_type *idt = Inter::Kind::parse_data_type(eloc, ilp->mr.exp[1], E);
|
||||
if (*E) return;
|
||||
constructor = idt->type_ID;
|
||||
*E = InterTypes::parse_semisimple(ilp->mr.exp[1], InterBookmark::scope(IBM), eloc, &parsed_description);
|
||||
}
|
||||
|
||||
*E = Inter::Kind::new(IBM, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, symb),
|
||||
constructor,
|
||||
(super_kind)?(InterSymbolsTable::id_from_symbol_at_bookmark(IBM, super_kind)):0,
|
||||
arity, operands, (inter_ti) ilp->indent_level, eloc);
|
||||
}
|
||||
|
||||
inter_data_type *Inter::Kind::parse_data_type(inter_error_location *eloc, text_stream *name, inter_error_message **E) {
|
||||
inter_data_type *idt = Inter::Types::find_by_name(name);
|
||||
if (idt == NULL) *E = Inter::Errors::quoted(I"no such data type", name, eloc);
|
||||
return idt;
|
||||
Regexp::dispose_of(&mr2);
|
||||
|
||||
if (*E == NULL)
|
||||
*E = Inter::Kind::new(IBM, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, symb),
|
||||
parsed_description.constructor_code,
|
||||
(super_kind)?(InterSymbolsTable::id_from_symbol_at_bookmark(IBM, super_kind)):0,
|
||||
parsed_description.arity, parsed_description.operand_TIDs, (inter_ti) ilp->indent_level, eloc);
|
||||
InterTypes::dispose_of_isstd(&parsed_description);
|
||||
}
|
||||
|
||||
inter_error_message *Inter::Kind::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) {
|
||||
|
||||
if ((constructor < UNCHECKED_IDT) || (constructor > RULEBOOK_IDT))
|
||||
if (InterTypes::is_valid_constructor_code(constructor) == FALSE)
|
||||
internal_error("constructor out of range");
|
||||
|
||||
inter_warehouse *warehouse = InterBookmark::warehouse(IBM);
|
||||
|
@ -170,55 +93,60 @@ void Inter::Kind::verify(inter_construct *IC, inter_tree_node *P, inter_package
|
|||
if (P->W.instruction[ENUM_RANGE_KIND_IFLD] != 0) {
|
||||
inter_symbol *the_kind = InterSymbolsTable::symbol_from_ID(InterPackage::scope(owner), P->W.instruction[DEFN_KIND_IFLD]);
|
||||
if ((the_kind == NULL) ||
|
||||
(Inter::Types::is_enumerated(Inter::Types::find_by_ID(P->W.instruction[CONSTRUCTOR_KIND_IFLD])) == FALSE))
|
||||
(InterTypes::is_enumerated(InterTypes::from_type_name(the_kind)) == FALSE))
|
||||
{ *E = Inode::error(P, I"spurious extent in non-enumeration", NULL); return; }
|
||||
}
|
||||
if (P->W.instruction[SUPER_KIND_IFLD] != 0) {
|
||||
*E = Inter::Verify::symbol(owner, P, P->W.instruction[SUPER_KIND_IFLD], KIND_IST); if (*E) return;
|
||||
inter_symbol *super_kind = InterSymbolsTable::symbol_from_ID(InterPackage::scope(owner), P->W.instruction[SUPER_KIND_IFLD]);
|
||||
if (Inter::Types::is_enumerated(Inter::Kind::data_type(super_kind)) == FALSE)
|
||||
if (InterTypes::is_enumerated(InterTypes::from_type_name(super_kind)) == FALSE)
|
||||
{ *E = Inode::error(P, I"subkind of nonenumerated kind", NULL); return; }
|
||||
}
|
||||
*E = Inter::Verify::data_type(P, CONSTRUCTOR_KIND_IFLD); if (*E) return;
|
||||
*E = Inter::Verify::constructor_code(P, CONSTRUCTOR_KIND_IFLD); if (*E) return;
|
||||
int arity = P->W.extent - MIN_EXTENT_KIND_IFR;
|
||||
switch (P->W.instruction[CONSTRUCTOR_KIND_IFLD]) {
|
||||
case LIST_IDT:
|
||||
case RULEBOOK_IDT:
|
||||
case EQUATED_ITCONC:
|
||||
if (arity != 1) { *E = Inode::error(P, I"wrong equated arity", NULL); return; }
|
||||
if (P->W.instruction[OPERANDS_KIND_IFLD] == 0) { *E = Inode::error(P, I"no equated kind", NULL); return; }
|
||||
*E = Inter::Verify::TID(owner, P, P->W.instruction[OPERANDS_KIND_IFLD]); if (*E) return;
|
||||
break;
|
||||
case LIST_ITCONC:
|
||||
case RULEBOOK_ITCONC:
|
||||
if (arity != 1) { *E = Inode::error(P, I"wrong list arity", NULL); return; }
|
||||
if (P->W.instruction[OPERANDS_KIND_IFLD] == 0) { *E = Inode::error(P, I"no listed kind", NULL); return; }
|
||||
*E = Inter::Verify::symbol(owner, P, P->W.instruction[OPERANDS_KIND_IFLD], KIND_IST); if (*E) return;
|
||||
*E = Inter::Verify::TID(owner, P, P->W.instruction[OPERANDS_KIND_IFLD]); if (*E) return;
|
||||
break;
|
||||
case COLUMN_IDT: if (arity != 1) { *E = Inode::error(P, I"wrong col arity", NULL); return; }
|
||||
case COLUMN_ITCONC: if (arity != 1) { *E = Inode::error(P, I"wrong col arity", NULL); return; }
|
||||
if (P->W.instruction[OPERANDS_KIND_IFLD] == 0) { *E = Inode::error(P, I"no listed kind", NULL); return; }
|
||||
*E = Inter::Verify::symbol(owner, P, P->W.instruction[OPERANDS_KIND_IFLD], KIND_IST); if (*E) return;
|
||||
*E = Inter::Verify::TID(owner, P, P->W.instruction[OPERANDS_KIND_IFLD]); if (*E) return;
|
||||
break;
|
||||
case DESCRIPTION_IDT: if (arity != 1) { *E = Inode::error(P, I"wrong desc arity", NULL); return; }
|
||||
case DESCRIPTION_ITCONC: if (arity != 1) { *E = Inode::error(P, I"wrong desc arity", NULL); return; }
|
||||
if (P->W.instruction[OPERANDS_KIND_IFLD] == 0) { *E = Inode::error(P, I"no listed kind", NULL); return; }
|
||||
*E = Inter::Verify::symbol(owner, P, P->W.instruction[OPERANDS_KIND_IFLD], KIND_IST); if (*E) return;
|
||||
*E = Inter::Verify::TID(owner, P, P->W.instruction[OPERANDS_KIND_IFLD]); if (*E) return;
|
||||
break;
|
||||
case RELATION_IDT: if (arity != 2) { *E = Inode::error(P, I"wrong relation arity", NULL); return; }
|
||||
case RELATION_ITCONC: if (arity != 2) { *E = Inode::error(P, I"wrong relation arity", NULL); return; }
|
||||
if (P->W.instruction[OPERANDS_KIND_IFLD] == 0) { *E = Inode::error(P, I"no listed kind", NULL); return; }
|
||||
*E = Inter::Verify::symbol(owner, P, P->W.instruction[OPERANDS_KIND_IFLD], KIND_IST); if (*E) return;
|
||||
*E = Inter::Verify::TID(owner, P, P->W.instruction[OPERANDS_KIND_IFLD]); if (*E) return;
|
||||
if (P->W.instruction[OPERANDS_KIND_IFLD+1] == 0) { *E = Inode::error(P, I"no listed kind", NULL); return; }
|
||||
*E = Inter::Verify::symbol(owner, P, P->W.instruction[OPERANDS_KIND_IFLD+1], KIND_IST); if (*E) return;
|
||||
*E = Inter::Verify::TID(owner, P, P->W.instruction[OPERANDS_KIND_IFLD+1]); if (*E) return;
|
||||
break;
|
||||
case FUNCTION_IDT:
|
||||
case RULE_IDT:
|
||||
case FUNCTION_ITCONC:
|
||||
case RULE_ITCONC:
|
||||
if (arity < 2) { *E = Inode::error(P, I"function arity too low", NULL); return; }
|
||||
for (int i=0; i<arity; i++) {
|
||||
if (P->W.instruction[OPERANDS_KIND_IFLD + i] == 0) {
|
||||
if (!(((i == 0) && (arity == 2)) || (i == arity - 1)))
|
||||
{ *E = Inode::error(P, I"no listed kind", NULL); return; }
|
||||
} else {
|
||||
*E = Inter::Verify::symbol(owner, P, P->W.instruction[OPERANDS_KIND_IFLD + i], KIND_IST);
|
||||
*E = Inter::Verify::TID(owner, P, P->W.instruction[OPERANDS_KIND_IFLD + i]);
|
||||
if (*E) return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case STRUCT_IDT:
|
||||
case STRUCT_ITCONC:
|
||||
if (arity == 0) { *E = Inode::error(P, I"struct arity too low", NULL); return; }
|
||||
for (int i=0; i<arity; i++) {
|
||||
*E = Inter::Verify::symbol(owner, P, P->W.instruction[OPERANDS_KIND_IFLD + i], KIND_IST);
|
||||
*E = Inter::Verify::TID(owner, P, P->W.instruction[OPERANDS_KIND_IFLD + i]);
|
||||
if (*E) return;
|
||||
}
|
||||
break;
|
||||
|
@ -245,70 +173,13 @@ inter_ti Inter::Kind::properties_list(inter_symbol *inst_name) {
|
|||
|
||||
void Inter::Kind::write(inter_construct *IC, OUTPUT_STREAM, inter_tree_node *P, inter_error_message **E) {
|
||||
inter_symbol *symb = InterSymbolsTable::symbol_from_ID_at_node(P, DEFN_KIND_IFLD);
|
||||
inter_data_type *idt = Inter::Types::find_by_ID(P->W.instruction[CONSTRUCTOR_KIND_IFLD]);
|
||||
if ((symb) && (idt)) {
|
||||
if (symb) {
|
||||
WRITE("kind %S ", InterSymbol::identifier(symb));
|
||||
if (P->W.instruction[SUPER_KIND_IFLD]) {
|
||||
inter_symbol *super = InterSymbolsTable::symbol_from_ID_at_node(P, SUPER_KIND_IFLD);
|
||||
WRITE("<= %S", InterSymbol::identifier(super));
|
||||
} else {
|
||||
switch (P->W.instruction[CONSTRUCTOR_KIND_IFLD]) {
|
||||
case LIST_IDT: {
|
||||
inter_symbol *conts_kind = InterSymbolsTable::symbol_from_ID_at_node(P, OPERANDS_KIND_IFLD);
|
||||
WRITE("list of %S", InterSymbol::identifier(conts_kind));
|
||||
break;
|
||||
}
|
||||
case RULEBOOK_IDT: {
|
||||
inter_symbol *conts_kind = InterSymbolsTable::symbol_from_ID_at_node(P, OPERANDS_KIND_IFLD);
|
||||
WRITE("rulebook of %S", InterSymbol::identifier(conts_kind));
|
||||
break;
|
||||
}
|
||||
case COLUMN_IDT: {
|
||||
inter_symbol *conts_kind = InterSymbolsTable::symbol_from_ID_at_node(P, OPERANDS_KIND_IFLD);
|
||||
WRITE("column of %S", InterSymbol::identifier(conts_kind));
|
||||
break;
|
||||
}
|
||||
case DESCRIPTION_IDT: {
|
||||
inter_symbol *conts_kind = InterSymbolsTable::symbol_from_ID_at_node(P, OPERANDS_KIND_IFLD);
|
||||
WRITE("description of %S", InterSymbol::identifier(conts_kind));
|
||||
break;
|
||||
}
|
||||
case RELATION_IDT: {
|
||||
inter_symbol *X_kind = InterSymbolsTable::symbol_from_ID_at_node(P, OPERANDS_KIND_IFLD);
|
||||
inter_symbol *Y_kind = InterSymbolsTable::symbol_from_ID_at_node(P, OPERANDS_KIND_IFLD+1);
|
||||
WRITE("relation of %S to %S", InterSymbol::identifier(X_kind), InterSymbol::identifier(Y_kind));
|
||||
break;
|
||||
}
|
||||
case FUNCTION_IDT:
|
||||
case RULE_IDT: {
|
||||
if (P->W.instruction[CONSTRUCTOR_KIND_IFLD] == FUNCTION_IDT)
|
||||
WRITE("function");
|
||||
else
|
||||
WRITE("rule");
|
||||
int arity = P->W.extent - MIN_EXTENT_KIND_IFR;
|
||||
for (int i=0; i<arity; i++) {
|
||||
WRITE(" ");
|
||||
if (i == arity - 1) WRITE("-> ");
|
||||
if (P->W.instruction[OPERANDS_KIND_IFLD + i] == 0) {
|
||||
WRITE("void");
|
||||
} else {
|
||||
inter_symbol *K = InterSymbolsTable::symbol_from_ID_at_node(P, OPERANDS_KIND_IFLD + i);
|
||||
WRITE("%S", InterSymbol::identifier(K));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case STRUCT_IDT: {
|
||||
WRITE("struct");
|
||||
int arity = P->W.extent - MIN_EXTENT_KIND_IFR;
|
||||
for (int i=0; i<arity; i++) {
|
||||
inter_symbol *K = InterSymbolsTable::symbol_from_ID_at_node(P, OPERANDS_KIND_IFLD + i);
|
||||
WRITE(" %S", InterSymbol::identifier(K));
|
||||
}
|
||||
break;
|
||||
}
|
||||
default: WRITE("%S", idt->reserved_word); break;
|
||||
}
|
||||
InterTypes::write_type_name_definition(OUT, symb);
|
||||
}
|
||||
} else { *E = Inode::error(P, I"cannot write kind", NULL); return; }
|
||||
SymbolAnnotation::write_annotations(OUT, P, symb);
|
||||
|
@ -330,13 +201,6 @@ int Inter::Kind::instance_count(inter_symbol *kind_symbol) {
|
|||
return (int) D->W.instruction[NO_INSTANCES_KIND_IFLD];
|
||||
}
|
||||
|
||||
int Inter::Kind::constructor(inter_symbol *kind_symbol) {
|
||||
if (kind_symbol == NULL) return 0;
|
||||
inter_tree_node *D = InterSymbol::definition(kind_symbol);
|
||||
if (D == NULL) return 0;
|
||||
return (int) D->W.instruction[CONSTRUCTOR_KIND_IFLD];
|
||||
}
|
||||
|
||||
int Inter::Kind::arity(inter_symbol *kind_symbol) {
|
||||
if (kind_symbol == NULL) return 0;
|
||||
inter_tree_node *D = InterSymbol::definition(kind_symbol);
|
||||
|
@ -344,21 +208,21 @@ int Inter::Kind::arity(inter_symbol *kind_symbol) {
|
|||
return D->W.extent - MIN_EXTENT_KIND_IFR;
|
||||
}
|
||||
|
||||
inter_symbol *Inter::Kind::operand_symbol(inter_symbol *kind_symbol, int i) {
|
||||
if (kind_symbol == NULL) return NULL;
|
||||
inter_type Inter::Kind::operand_type(inter_symbol *kind_symbol, int i) {
|
||||
if (kind_symbol == NULL) return InterTypes::untyped();
|
||||
inter_tree_node *D = InterSymbol::definition(kind_symbol);
|
||||
if (D == NULL) return NULL;
|
||||
if (i >= D->W.extent - MIN_EXTENT_KIND_IFR) return NULL;
|
||||
inter_ti CID = D->W.instruction[OPERANDS_KIND_IFLD + i];
|
||||
if (D == NULL) return InterTypes::untyped();
|
||||
if (i >= D->W.extent - MIN_EXTENT_KIND_IFR) return InterTypes::untyped();
|
||||
inter_ti TID = D->W.instruction[OPERANDS_KIND_IFLD + i];
|
||||
inter_symbols_table *T = InterPackage::scope_of(D);
|
||||
return InterSymbolsTable::symbol_from_ID(T, CID);
|
||||
return InterTypes::from_TID(T, TID);
|
||||
}
|
||||
|
||||
inter_data_type *Inter::Kind::data_type(inter_symbol *kind_symbol) {
|
||||
if (kind_symbol == NULL) return unchecked_idt;
|
||||
inter_ti Inter::Kind::constructor(inter_symbol *kind_symbol) {
|
||||
if (kind_symbol == NULL) return UNCHECKED_ITCONC;
|
||||
inter_tree_node *D = InterSymbol::definition(kind_symbol);
|
||||
if (D == NULL) return unchecked_idt;
|
||||
return Inter::Types::find_by_ID(D->W.instruction[CONSTRUCTOR_KIND_IFLD]);
|
||||
if (D == NULL) return UNCHECKED_ITCONC;
|
||||
return D->W.instruction[CONSTRUCTOR_KIND_IFLD];
|
||||
}
|
||||
|
||||
inter_ti Inter::Kind::next_enumerated_value(inter_symbol *kind_symbol) {
|
||||
|
@ -384,9 +248,9 @@ int Inter::Kind::is(inter_symbol *kind_symbol) {
|
|||
}
|
||||
|
||||
int Inter::Kind::is_a(inter_symbol *K1, inter_symbol *K2) {
|
||||
inter_data_type *idt1 = Inter::Kind::data_type(K1);
|
||||
inter_data_type *idt2 = Inter::Kind::data_type(K2);
|
||||
if ((idt1 == unchecked_idt) || (idt2 == unchecked_idt)) return TRUE;
|
||||
inter_type type1 = InterTypes::from_type_name(K1);
|
||||
inter_type type2 = InterTypes::from_type_name(K2);
|
||||
if ((InterTypes::is_untyped(type1)) || (InterTypes::is_untyped(type2))) return TRUE;
|
||||
while (K1) {
|
||||
if (K1 == K2) return TRUE;
|
||||
K1 = Inter::Kind::super(K1);
|
||||
|
|
|
@ -39,7 +39,7 @@ void Inter::Permission::read(inter_construct *IC, inter_bookmark *IBM, inter_lin
|
|||
if (*E) return;
|
||||
|
||||
if (Inter::Kind::is(owner_name)) {
|
||||
if (Inter::Types::is_enumerated(Inter::Kind::data_type(owner_name)) == FALSE)
|
||||
if (InterTypes::is_enumerated(InterTypes::from_type_name(owner_name)) == FALSE)
|
||||
{ *E = Inter::Errors::quoted(I"not a kind which can have property values", ilp->mr.exp[1], eloc); return; }
|
||||
|
||||
inter_node_list *FL =
|
||||
|
@ -111,7 +111,7 @@ void Inter::Permission::verify(inter_construct *IC, inter_tree_node *P, inter_pa
|
|||
inter_node_list *FL = NULL;
|
||||
|
||||
if (Inter::Kind::is(owner_name)) {
|
||||
if (Inter::Types::is_enumerated(Inter::Kind::data_type(owner_name)) == FALSE)
|
||||
if (InterTypes::is_enumerated(InterTypes::from_type_name(owner_name)) == FALSE)
|
||||
{ *E = Inode::error(P, I"property permission for non-enumerated kind", NULL); return; }
|
||||
FL = Inode::ID_to_frame_list(P, Inter::Kind::permissions_list(owner_name));
|
||||
if (FL == NULL) internal_error("no permissions list");
|
||||
|
|
|
@ -37,7 +37,7 @@ void Inter::Property::read(inter_construct *IC, inter_bookmark *IBM, inter_line_
|
|||
name_text = mr2.exp[1];
|
||||
}
|
||||
|
||||
inter_type prop_type = Inter::Types::parse(InterBookmark::scope(IBM), eloc, kind_text, E);
|
||||
inter_type prop_type = InterTypes::parse_simple(InterBookmark::scope(IBM), eloc, kind_text, E);
|
||||
if (*E) return;
|
||||
|
||||
inter_symbol *prop_name = TextualInter::new_symbol(eloc, InterBookmark::scope(IBM), name_text, E);
|
||||
|
@ -51,7 +51,7 @@ void Inter::Property::read(inter_construct *IC, inter_bookmark *IBM, inter_line_
|
|||
inter_error_message *Inter::Property::new(inter_bookmark *IBM, inter_ti PID, inter_type prop_type, inter_ti level, inter_error_location *eloc) {
|
||||
inter_warehouse *warehouse = InterBookmark::warehouse(IBM);
|
||||
inter_ti L1 = InterWarehouse::create_node_list(warehouse, InterBookmark::package(IBM));
|
||||
inter_tree_node *P = Inode::new_with_3_data_fields(IBM, PROPERTY_IST, PID, Inter::Types::to_TID(IBM, prop_type), L1, eloc, level);
|
||||
inter_tree_node *P = Inode::new_with_3_data_fields(IBM, PROPERTY_IST, PID, InterTypes::to_TID_wrt_bookmark(IBM, prop_type), L1, eloc, level);
|
||||
inter_error_message *E = InterConstruct::verify_construct(InterBookmark::package(IBM), P);
|
||||
if (E) return E;
|
||||
NodePlacement::move_to_moving_bookmark(P, IBM);
|
||||
|
@ -65,7 +65,7 @@ void Inter::Property::transpose(inter_construct *IC, inter_tree_node *P, inter_t
|
|||
void Inter::Property::verify(inter_construct *IC, inter_tree_node *P, inter_package *owner, inter_error_message **E) {
|
||||
if (P->W.extent != EXTENT_PROP_IFR) { *E = Inode::error(P, I"extent wrong", NULL); return; }
|
||||
*E = Inter::Verify::defn(owner, P, DEFN_PROP_IFLD); if (*E) return;
|
||||
Inter::Types::verify_type_field(owner, P, KIND_PROP_IFLD, -1, E);
|
||||
Inter::Verify::typed_data(owner, P, KIND_PROP_IFLD, -1, E);
|
||||
}
|
||||
|
||||
inter_ti Inter::Property::permissions_list(inter_symbol *prop_name) {
|
||||
|
@ -79,16 +79,16 @@ void Inter::Property::write(inter_construct *IC, OUTPUT_STREAM, inter_tree_node
|
|||
inter_symbol *prop_name = InterSymbolsTable::symbol_from_ID_at_node(P, DEFN_PROP_IFLD);
|
||||
if (prop_name) {
|
||||
WRITE("property ");
|
||||
Inter::Types::write_type_field(OUT, P, KIND_PROP_IFLD);
|
||||
InterTypes::write_optional_type_marker(OUT, P, KIND_PROP_IFLD);
|
||||
WRITE("%S", InterSymbol::identifier(prop_name));
|
||||
SymbolAnnotation::write_annotations(OUT, P, prop_name);
|
||||
} else { *E = Inode::error(P, I"cannot write property", NULL); return; }
|
||||
}
|
||||
|
||||
inter_type Inter::Property::type_of(inter_symbol *prop_symbol) {
|
||||
if (prop_symbol == NULL) return Inter::Types::untyped();
|
||||
if (prop_symbol == NULL) return InterTypes::untyped();
|
||||
inter_tree_node *D = InterSymbol::definition(prop_symbol);
|
||||
if (D == NULL) return Inter::Types::untyped();
|
||||
if (D->W.instruction[ID_IFLD] != PROPERTY_IST) return Inter::Types::untyped();
|
||||
return Inter::Types::from_TID(D, KIND_PROP_IFLD);
|
||||
if (D == NULL) return InterTypes::untyped();
|
||||
if (D->W.instruction[ID_IFLD] != PROPERTY_IST) return InterTypes::untyped();
|
||||
return InterTypes::from_TID_in_field(D, KIND_PROP_IFLD);
|
||||
}
|
||||
|
|
|
@ -53,7 +53,7 @@ void Inter::PropertyValue::read(inter_construct *IC, inter_bookmark *IBM, inter_
|
|||
inter_type val_type = Inter::Property::type_of(prop_name);
|
||||
inter_ti con_val1 = 0;
|
||||
inter_ti con_val2 = 0;
|
||||
*E = Inter::Types::read_data_pair(ilp->line, eloc, IBM, val_type, ilp->mr.exp[2], &con_val1, &con_val2, InterBookmark::scope(IBM));
|
||||
*E = InterValuePairs::parse(ilp->line, eloc, IBM, val_type, ilp->mr.exp[2], &con_val1, &con_val2, InterBookmark::scope(IBM));
|
||||
if (*E) return;
|
||||
|
||||
*E = Inter::PropertyValue::new(IBM, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, prop_name), InterSymbolsTable::id_from_symbol_at_bookmark(IBM, owner_name),
|
||||
|
@ -148,6 +148,6 @@ void Inter::PropertyValue::write(inter_construct *IC, OUTPUT_STREAM, inter_tree_
|
|||
inter_symbol *owner_name = InterSymbolsTable::symbol_from_ID_at_node(P, OWNER_PVAL_IFLD);
|
||||
if ((prop_name) && (owner_name)) {
|
||||
WRITE("propertyvalue %S %S = ", InterSymbol::identifier(prop_name), InterSymbol::identifier(owner_name));
|
||||
Inter::Types::write_pair(OUT, P, P->W.instruction[DVAL1_PVAL_IFLD], P->W.instruction[DVAL2_PVAL_IFLD], InterPackage::scope_of(P), FALSE);
|
||||
InterValuePairs::write(OUT, P, P->W.instruction[DVAL1_PVAL_IFLD], P->W.instruction[DVAL2_PVAL_IFLD], InterPackage::scope_of(P), FALSE);
|
||||
} else { *E = Inode::error(P, I"cannot write propertyvalue", NULL); return; }
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ void Inter::Variable::read(inter_construct *IC, inter_bookmark *IBM, inter_line_
|
|||
name_text = mr2.exp[1];
|
||||
}
|
||||
|
||||
inter_type var_type = Inter::Types::parse(InterBookmark::scope(IBM), eloc, kind_text, E);
|
||||
inter_type var_type = InterTypes::parse_simple(InterBookmark::scope(IBM), eloc, kind_text, E);
|
||||
if (*E) return;
|
||||
|
||||
inter_symbol *var_name = TextualInter::new_symbol(eloc, InterBookmark::scope(IBM), name_text, E);
|
||||
|
@ -47,14 +47,14 @@ void Inter::Variable::read(inter_construct *IC, inter_bookmark *IBM, inter_line_
|
|||
|
||||
inter_ti var_val1 = 0;
|
||||
inter_ti var_val2 = 0;
|
||||
*E = Inter::Types::read_data_pair(ilp->line, eloc, IBM, var_type, ilp->mr.exp[1], &var_val1, &var_val2, InterBookmark::scope(IBM));
|
||||
*E = InterValuePairs::parse(ilp->line, eloc, IBM, var_type, ilp->mr.exp[1], &var_val1, &var_val2, InterBookmark::scope(IBM));
|
||||
if (*E) return;
|
||||
|
||||
*E = Inter::Variable::new(IBM, InterSymbolsTable::id_from_symbol_at_bookmark(IBM, var_name), var_type, var_val1, var_val2, (inter_ti) ilp->indent_level, eloc);
|
||||
}
|
||||
|
||||
inter_error_message *Inter::Variable::new(inter_bookmark *IBM, inter_ti VID, inter_type var_type, inter_ti var_val1, inter_ti var_val2, inter_ti level, inter_error_location *eloc) {
|
||||
inter_tree_node *P = Inode::new_with_4_data_fields(IBM, VARIABLE_IST, VID, Inter::Types::to_TID(IBM, var_type), var_val1, var_val2, eloc, level);
|
||||
inter_tree_node *P = Inode::new_with_4_data_fields(IBM, VARIABLE_IST, VID, InterTypes::to_TID_wrt_bookmark(IBM, var_type), var_val1, var_val2, eloc, level);
|
||||
inter_error_message *E = InterConstruct::verify_construct(InterBookmark::package(IBM), P);
|
||||
if (E) return E;
|
||||
NodePlacement::move_to_moving_bookmark(P, IBM);
|
||||
|
@ -64,24 +64,24 @@ inter_error_message *Inter::Variable::new(inter_bookmark *IBM, inter_ti VID, int
|
|||
void Inter::Variable::verify(inter_construct *IC, inter_tree_node *P, inter_package *owner, inter_error_message **E) {
|
||||
if (P->W.extent != EXTENT_VAR_IFR) { *E = Inode::error(P, I"extent wrong", NULL); return; }
|
||||
*E = Inter::Verify::defn(owner, P, DEFN_VAR_IFLD); if (*E) return;
|
||||
Inter::Types::verify_type_field(owner, P, KIND_VAR_IFLD, VAL1_VAR_IFLD, E);
|
||||
Inter::Verify::typed_data(owner, P, KIND_VAR_IFLD, VAL1_VAR_IFLD, E);
|
||||
}
|
||||
|
||||
void Inter::Variable::write(inter_construct *IC, OUTPUT_STREAM, inter_tree_node *P, inter_error_message **E) {
|
||||
inter_symbol *var_name = InterSymbolsTable::symbol_from_ID_at_node(P, DEFN_VAR_IFLD);
|
||||
if (var_name) {
|
||||
WRITE("variable ");
|
||||
Inter::Types::write_type_field(OUT, P, KIND_VAR_IFLD);
|
||||
InterTypes::write_optional_type_marker(OUT, P, KIND_VAR_IFLD);
|
||||
WRITE("%S = ", InterSymbol::identifier(var_name));
|
||||
Inter::Types::write_pair(OUT, P, P->W.instruction[VAL1_VAR_IFLD], P->W.instruction[VAL2_VAR_IFLD], InterPackage::scope_of(P), FALSE);
|
||||
InterValuePairs::write(OUT, P, P->W.instruction[VAL1_VAR_IFLD], P->W.instruction[VAL2_VAR_IFLD], InterPackage::scope_of(P), FALSE);
|
||||
SymbolAnnotation::write_annotations(OUT, P, var_name);
|
||||
} else { *E = Inode::error(P, I"cannot write variable", NULL); return; }
|
||||
}
|
||||
|
||||
inter_type Inter::Variable::type_of(inter_symbol *con_symbol) {
|
||||
if (con_symbol == NULL) return Inter::Types::untyped();
|
||||
if (con_symbol == NULL) return InterTypes::untyped();
|
||||
inter_tree_node *D = InterSymbol::definition(con_symbol);
|
||||
if (D == NULL) return Inter::Types::untyped();
|
||||
if (D->W.instruction[ID_IFLD] != VARIABLE_IST) return Inter::Types::untyped();
|
||||
return Inter::Types::from_TID(D, KIND_VAR_IFLD);
|
||||
if (D == NULL) return InterTypes::untyped();
|
||||
if (D->W.instruction[ID_IFLD] != VARIABLE_IST) return InterTypes::untyped();
|
||||
return InterTypes::from_TID_in_field(D, KIND_VAR_IFLD);
|
||||
}
|
||||
|
|
|
@ -54,8 +54,8 @@ inter_error_message *Inter::Cast::new(inter_bookmark *IBM, inter_symbol *from_ki
|
|||
|
||||
void Inter::Cast::verify(inter_construct *IC, inter_tree_node *P, inter_package *owner, inter_error_message **E) {
|
||||
if (P->W.extent != EXTENT_CAST_IFR) { *E = Inode::error(P, I"extent wrong", NULL); return; }
|
||||
*E = Inter::Verify::symbol(owner, P, P->W.instruction[TO_KIND_CAST_IFLD], KIND_IST); if (*E) return;
|
||||
*E = Inter::Verify::symbol(owner, P, P->W.instruction[FROM_KIND_CAST_IFLD], KIND_IST); if (*E) return;
|
||||
*E = Inter::Verify::TID(owner, P, P->W.instruction[TO_KIND_CAST_IFLD]); if (*E) return;
|
||||
*E = Inter::Verify::TID(owner, P, P->W.instruction[FROM_KIND_CAST_IFLD]); if (*E) return;
|
||||
}
|
||||
|
||||
void Inter::Cast::write(inter_construct *IC, OUTPUT_STREAM, inter_tree_node *P, inter_error_message **E) {
|
||||
|
|
|
@ -40,7 +40,7 @@ void Inter::Local::read(inter_construct *IC, inter_bookmark *IBM, inter_line_par
|
|||
name_text = mr2.exp[1];
|
||||
}
|
||||
|
||||
inter_type var_type = Inter::Types::parse(InterBookmark::scope(IBM), eloc, kind_text, E);
|
||||
inter_type var_type = InterTypes::parse_simple(InterBookmark::scope(IBM), eloc, kind_text, E);
|
||||
if (*E) return;
|
||||
|
||||
inter_symbol *var_name = TextualInter::new_symbol(eloc, locals, name_text, E);
|
||||
|
@ -54,7 +54,7 @@ void Inter::Local::read(inter_construct *IC, inter_bookmark *IBM, inter_line_par
|
|||
|
||||
inter_error_message *Inter::Local::new(inter_bookmark *IBM, inter_symbol *var_name,
|
||||
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), Inter::Types::to_TID(IBM, var_type), eloc, level);
|
||||
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_wrt_bookmark(IBM, var_type), eloc, level);
|
||||
inter_error_message *E = InterConstruct::verify_construct(InterBookmark::package(IBM), P); if (E) return E;
|
||||
NodePlacement::move_to_moving_bookmark(P, IBM);
|
||||
return NULL;
|
||||
|
@ -65,7 +65,7 @@ void Inter::Local::verify(inter_construct *IC, inter_tree_node *P, inter_package
|
|||
inter_symbols_table *locals = InterPackage::scope(owner);
|
||||
if (locals == NULL) { *E = Inode::error(P, I"no symbols table in function", NULL); return; }
|
||||
*E = Inter::Verify::local_defn(P, DEFN_LOCAL_IFLD, locals); if (*E) return;
|
||||
Inter::Types::verify_type_field(owner, P, KIND_LOCAL_IFLD, -1, E);
|
||||
Inter::Verify::typed_data(owner, P, KIND_LOCAL_IFLD, -1, E);
|
||||
}
|
||||
|
||||
void Inter::Local::write(inter_construct *IC, OUTPUT_STREAM, inter_tree_node *P, inter_error_message **E) {
|
||||
|
@ -73,16 +73,16 @@ void Inter::Local::write(inter_construct *IC, OUTPUT_STREAM, inter_tree_node *P,
|
|||
inter_symbol *var_name = InterSymbolsTable::symbol_from_ID_in_package(pack, P->W.instruction[DEFN_LOCAL_IFLD]);
|
||||
if (var_name) {
|
||||
WRITE("local ");
|
||||
Inter::Types::write_type_field(OUT, P, KIND_LOCAL_IFLD);
|
||||
InterTypes::write_optional_type_marker(OUT, P, KIND_LOCAL_IFLD);
|
||||
WRITE("%S", InterSymbol::identifier(var_name));
|
||||
SymbolAnnotation::write_annotations(OUT, P, var_name);
|
||||
} else { *E = Inode::error(P, I"cannot write local", NULL); return; }
|
||||
}
|
||||
|
||||
inter_type Inter::Local::type_of(inter_symbol *con_symbol) {
|
||||
if (con_symbol == NULL) return Inter::Types::untyped();
|
||||
if (con_symbol == NULL) return InterTypes::untyped();
|
||||
inter_tree_node *D = InterSymbol::definition(con_symbol);
|
||||
if (D == NULL) return Inter::Types::untyped();
|
||||
if (D->W.instruction[ID_IFLD] != LOCAL_IST) return Inter::Types::untyped();
|
||||
return Inter::Types::from_TID(D, KIND_LOCAL_IFLD);
|
||||
if (D == NULL) return InterTypes::untyped();
|
||||
if (D->W.instruction[ID_IFLD] != LOCAL_IST) return InterTypes::untyped();
|
||||
return InterTypes::from_TID_in_field(D, KIND_LOCAL_IFLD);
|
||||
}
|
||||
|
|
|
@ -45,19 +45,19 @@ void Inter::Ref::read(inter_construct *IC, inter_bookmark *IBM, inter_line_parse
|
|||
value_text = mr2.exp[1];
|
||||
}
|
||||
|
||||
inter_type ref_type = Inter::Types::parse(InterBookmark::scope(IBM), eloc, kind_text, E);
|
||||
inter_type ref_type = InterTypes::parse_simple(InterBookmark::scope(IBM), eloc, kind_text, E);
|
||||
if (*E) return;
|
||||
|
||||
inter_ti var_val1 = 0;
|
||||
inter_ti var_val2 = 0;
|
||||
*E = Inter::Types::read_data_pair(ilp->line, eloc, IBM, ref_type, value_text, &var_val1, &var_val2, locals);
|
||||
*E = InterValuePairs::parse(ilp->line, eloc, IBM, ref_type, value_text, &var_val1, &var_val2, locals);
|
||||
if (*E) return;
|
||||
|
||||
*E = Inter::Ref::new(IBM, ref_type, ilp->indent_level, var_val1, var_val2, eloc);
|
||||
}
|
||||
|
||||
inter_error_message *Inter::Ref::new(inter_bookmark *IBM, inter_type ref_type, int level, inter_ti val1, inter_ti val2, inter_error_location *eloc) {
|
||||
inter_tree_node *P = Inode::new_with_4_data_fields(IBM, REF_IST, 0, Inter::Types::to_TID(IBM, ref_type), val1, val2, eloc, (inter_ti) level);
|
||||
inter_tree_node *P = Inode::new_with_4_data_fields(IBM, REF_IST, 0, InterTypes::to_TID_wrt_bookmark(IBM, ref_type), val1, val2, eloc, (inter_ti) level);
|
||||
inter_error_message *E = InterConstruct::verify_construct(InterBookmark::package(IBM), P); if (E) return E;
|
||||
NodePlacement::move_to_moving_bookmark(P, IBM);
|
||||
return NULL;
|
||||
|
@ -65,7 +65,7 @@ inter_error_message *Inter::Ref::new(inter_bookmark *IBM, inter_type ref_type, i
|
|||
|
||||
void Inter::Ref::verify(inter_construct *IC, inter_tree_node *P, inter_package *owner, inter_error_message **E) {
|
||||
if (P->W.extent != EXTENT_REF_IFR) { *E = Inode::error(P, I"extent wrong", NULL); return; }
|
||||
Inter::Types::verify_type_field(owner, P, KIND_REF_IFLD, VAL1_REF_IFLD, E);
|
||||
Inter::Verify::typed_data(owner, P, KIND_REF_IFLD, VAL1_REF_IFLD, E);
|
||||
}
|
||||
|
||||
void Inter::Ref::write(inter_construct *IC, OUTPUT_STREAM, inter_tree_node *P, inter_error_message **E) {
|
||||
|
@ -73,6 +73,6 @@ void Inter::Ref::write(inter_construct *IC, OUTPUT_STREAM, inter_tree_node *P, i
|
|||
inter_symbols_table *locals = InterPackage::scope(pack);
|
||||
if (locals == NULL) { *E = Inode::error(P, I"function has no symbols table", NULL); return; }
|
||||
WRITE("ref ");
|
||||
Inter::Types::write_type_field(OUT, P, KIND_REF_IFLD);
|
||||
Inter::Types::write_pair(OUT, P, P->W.instruction[VAL1_REF_IFLD], P->W.instruction[VAL2_REF_IFLD], locals, FALSE);
|
||||
InterTypes::write_optional_type_marker(OUT, P, KIND_REF_IFLD);
|
||||
InterValuePairs::write(OUT, P, P->W.instruction[VAL1_REF_IFLD], P->W.instruction[VAL2_REF_IFLD], locals, FALSE);
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ void Inter::Val::read(inter_construct *IC, inter_bookmark *IBM, inter_line_parse
|
|||
value_text = mr2.exp[1];
|
||||
}
|
||||
|
||||
inter_type val_type = Inter::Types::parse(InterBookmark::scope(IBM), eloc, kind_text, E);
|
||||
inter_type val_type = InterTypes::parse_simple(InterBookmark::scope(IBM), eloc, kind_text, E);
|
||||
if (*E) return;
|
||||
|
||||
inter_ti val1 = 0;
|
||||
|
@ -55,9 +55,9 @@ void Inter::Val::read(inter_construct *IC, inter_bookmark *IBM, inter_line_parse
|
|||
inter_symbol *kind_as_value = TextualInter::find_symbol(IBM, eloc, value_text, KIND_IST, E);
|
||||
if (kind_as_value) {
|
||||
*E = NULL;
|
||||
Inter::Types::symbol_to_pair(InterBookmark::tree(IBM), InterBookmark::package(IBM), kind_as_value, &val1, &val2);
|
||||
InterValuePairs::from_symbol(InterBookmark::tree(IBM), InterBookmark::package(IBM), kind_as_value, &val1, &val2);
|
||||
} else {
|
||||
*E = Inter::Types::read_data_pair(ilp->line, eloc, IBM, val_type, value_text, &val1, &val2, locals);
|
||||
*E = InterValuePairs::parse(ilp->line, eloc, IBM, val_type, value_text, &val1, &val2, locals);
|
||||
if (*E) return;
|
||||
}
|
||||
|
||||
|
@ -66,25 +66,25 @@ void Inter::Val::read(inter_construct *IC, inter_bookmark *IBM, inter_line_parse
|
|||
|
||||
inter_error_message *Inter::Val::new(inter_bookmark *IBM, inter_type val_type,
|
||||
int level, inter_ti val1, inter_ti val2, inter_error_location *eloc) {
|
||||
inter_tree_node *P = Inode::new_with_4_data_fields(IBM, VAL_IST, 0, Inter::Types::to_TID(IBM, val_type), val1, val2, eloc, (inter_ti) level);
|
||||
inter_tree_node *P = Inode::new_with_4_data_fields(IBM, VAL_IST, 0, InterTypes::to_TID_wrt_bookmark(IBM, val_type), val1, val2, eloc, (inter_ti) level);
|
||||
inter_error_message *E = InterConstruct::verify_construct(InterBookmark::package(IBM), P); if (E) return E;
|
||||
NodePlacement::move_to_moving_bookmark(P, IBM);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void Inter::Val::transpose(inter_construct *IC, inter_tree_node *P, inter_ti *grid, inter_ti grid_extent, inter_error_message **E) {
|
||||
P->W.instruction[VAL2_VAL_IFLD] = Inter::Types::transpose_value(P->W.instruction[VAL1_VAL_IFLD], P->W.instruction[VAL2_VAL_IFLD], grid, grid_extent, E);
|
||||
P->W.instruction[VAL2_VAL_IFLD] = InterValuePairs::transpose_value(P->W.instruction[VAL1_VAL_IFLD], P->W.instruction[VAL2_VAL_IFLD], grid, grid_extent, E);
|
||||
}
|
||||
|
||||
void Inter::Val::verify(inter_construct *IC, inter_tree_node *P, inter_package *owner, inter_error_message **E) {
|
||||
if (P->W.extent != EXTENT_VAL_IFR) { *E = Inode::error(P, I"extent wrong", NULL); return; }
|
||||
Inter::Types::verify_type_field(owner, P, KIND_VAL_IFLD, VAL1_VAL_IFLD, E);
|
||||
Inter::Verify::typed_data(owner, P, KIND_VAL_IFLD, VAL1_VAL_IFLD, E);
|
||||
}
|
||||
|
||||
void Inter::Val::write(inter_construct *IC, OUTPUT_STREAM, inter_tree_node *P, inter_error_message **E) {
|
||||
inter_symbols_table *locals = InterPackage::scope_of(P);
|
||||
if (locals == NULL) { *E = Inode::error(P, I"function has no symbols table", NULL); return; }
|
||||
WRITE("val ");
|
||||
Inter::Types::write_type_field(OUT, P, KIND_VAL_IFLD);
|
||||
Inter::Types::write_pair(OUT, P, P->W.instruction[VAL1_VAL_IFLD], P->W.instruction[VAL2_VAL_IFLD], locals, FALSE);
|
||||
InterTypes::write_optional_type_marker(OUT, P, KIND_VAL_IFLD);
|
||||
InterValuePairs::write(OUT, P, P->W.instruction[VAL1_VAL_IFLD], P->W.instruction[VAL2_VAL_IFLD], locals, FALSE);
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@ Chapter 3: Their Instructions
|
|||
Inter in Binary Files
|
||||
Inter in Text Files
|
||||
Verifying Inter
|
||||
Inter Value Pairs
|
||||
Inter Data Types
|
||||
Metadata
|
||||
Inter Errors
|
||||
|
|
|
@ -469,7 +469,7 @@ void CodeGen::pair(code_generation *gen, inter_tree_node *P,
|
|||
text_stream *OUT = CodeGen::current(gen);
|
||||
if (val1 == LITERAL_IVAL) {
|
||||
Generators::compile_literal_number(gen, val2, FALSE);
|
||||
} else if (Inter::Types::pair_holds_symbol(val1, val2)) {
|
||||
} else if (InterValuePairs::holds_symbol(val1, val2)) {
|
||||
inter_symbol *s = InterSymbolsTable::symbol_from_data_pair(val1, val2, T);
|
||||
if (s == NULL) internal_error("bad symbol in Inter pair");
|
||||
Generators::compile_literal_symbol(gen, s);
|
||||
|
|
|
@ -113,7 +113,7 @@ a variable here.
|
|||
void VanillaCode::val_or_ref(code_generation *gen, inter_tree_node *P, int ref) {
|
||||
inter_ti val1 = P->W.instruction[VAL1_VAL_IFLD];
|
||||
inter_ti val2 = P->W.instruction[VAL2_VAL_IFLD];
|
||||
if (Inter::Types::pair_holds_symbol(val1, val2)) {
|
||||
if (InterValuePairs::holds_symbol(val1, val2)) {
|
||||
inter_package *pack = InterPackage::container(P);
|
||||
inter_symbol *named_s =
|
||||
InterSymbolsTable::symbol_from_ID_in_package(pack, val2);
|
||||
|
|
|
@ -198,7 +198,7 @@ void VanillaConstants::definition_value(code_generation *gen, int form,
|
|||
}
|
||||
int bracket = TRUE;
|
||||
if ((P->W.instruction[i] == LITERAL_IVAL) ||
|
||||
(Inter::Types::pair_holds_symbol(P->W.instruction[i], P->W.instruction[i+1]))) bracket = FALSE;
|
||||
(InterValuePairs::holds_symbol(P->W.instruction[i], P->W.instruction[i+1]))) bracket = FALSE;
|
||||
if (bracket) WRITE("(");
|
||||
CodeGen::pair(gen, P, P->W.instruction[i], P->W.instruction[i+1]);
|
||||
if (bracket) WRITE(")");
|
||||
|
|
|
@ -147,7 +147,7 @@ void VanillaFunctions::invoke_function(code_generation *gen, inter_symbol *fn_s,
|
|||
(D->W.instruction[FORMAT_CONST_IFLD] == CONSTANT_DIRECT)) {
|
||||
inter_ti val1 = D->W.instruction[DATA_CONST_IFLD];
|
||||
inter_ti val2 = D->W.instruction[DATA_CONST_IFLD + 1];
|
||||
if (Inter::Types::pair_holds_symbol(val1, val2)) {
|
||||
if (InterValuePairs::holds_symbol(val1, val2)) {
|
||||
inter_symbol *S = InterSymbolsTable::symbol_from_data_pair(
|
||||
val1, val2, InterPackage::scope_of(D));
|
||||
if (S) fn_s = S;
|
||||
|
|
|
@ -424,7 +424,7 @@ The opening byte gives some metadata bits, and then there's a word.
|
|||
@ =
|
||||
inter_symbol *VanillaIF::get_symbol(code_generation *gen, inter_tree_node *P,
|
||||
inter_ti val1, inter_ti val2) {
|
||||
if (Inter::Types::pair_holds_symbol(val1, val2)) {
|
||||
if (InterValuePairs::holds_symbol(val1, val2)) {
|
||||
inter_symbol *S =
|
||||
InterSymbolsTable::symbol_from_data_pair(val1, val2,
|
||||
InterPackage::scope_of(P));
|
||||
|
|
|
@ -514,7 +514,7 @@ int VanillaObjects::is_kind_of_object(code_generation *gen, inter_symbol *kind_s
|
|||
inter_symbol *object_kind = RunningPipelines::get_symbol(gen->from_step, object_kind_RPSYM);
|
||||
if (object_kind == NULL) return FALSE;
|
||||
if (kind_s == object_kind) return FALSE;
|
||||
if (Inter::Kind::data_type(kind_s) == unchecked_idt) return FALSE;
|
||||
if (InterTypes::is_untyped(InterTypes::from_type_name(kind_s))) return FALSE;
|
||||
if (Inter::Kind::is_a(kind_s, object_kind)) return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
@ -752,7 +752,7 @@ text_stream *I6TargetCode::inner_name(code_generation *gen, inter_tree_node *pro
|
|||
if (prop_node->W.instruction[ID_IFLD] == VAL_IST) {
|
||||
inter_ti val1 = prop_node->W.instruction[VAL1_VAL_IFLD];
|
||||
inter_ti val2 = prop_node->W.instruction[VAL2_VAL_IFLD];
|
||||
if (Inter::Types::pair_holds_symbol(val1, val2))
|
||||
if (InterValuePairs::holds_symbol(val1, val2))
|
||||
prop_symbol =
|
||||
InterSymbolsTable::symbol_from_ID(InterPackage::scope_of(prop_node), val2);
|
||||
}
|
||||
|
@ -792,7 +792,7 @@ int I6TargetCode::pval_case_inner(inter_tree_node *kind_node, inter_tree_node *p
|
|||
if (kind_node->W.instruction[ID_IFLD] == VAL_IST) {
|
||||
inter_ti val1 = kind_node->W.instruction[VAL1_VAL_IFLD];
|
||||
inter_ti val2 = kind_node->W.instruction[VAL2_VAL_IFLD];
|
||||
if (Inter::Types::pair_holds_symbol(val1, val2))
|
||||
if (InterValuePairs::holds_symbol(val1, val2))
|
||||
kind_symbol =
|
||||
InterSymbolsTable::symbol_from_ID(InterPackage::scope_of(kind_node), val2);
|
||||
}
|
||||
|
@ -803,7 +803,7 @@ int I6TargetCode::pval_case_inner(inter_tree_node *kind_node, inter_tree_node *p
|
|||
if (prop_node->W.instruction[ID_IFLD] == VAL_IST) {
|
||||
inter_ti val1 = prop_node->W.instruction[VAL1_VAL_IFLD];
|
||||
inter_ti val2 = prop_node->W.instruction[VAL2_VAL_IFLD];
|
||||
if (Inter::Types::pair_holds_symbol(val1, val2))
|
||||
if (InterValuePairs::holds_symbol(val1, val2))
|
||||
prop_symbol =
|
||||
InterSymbolsTable::symbol_from_ID(InterPackage::scope_of(prop_node), val2);
|
||||
}
|
||||
|
|
|
@ -145,7 +145,7 @@ they were any other arrays. Here goes:
|
|||
for (int i=DATA_CONST_IFLD; i<P->W.extent; i=i+2) {
|
||||
WRITE(" ");
|
||||
inter_ti val1 = P->W.instruction[i], val2 = P->W.instruction[i+1];
|
||||
if (Inter::Types::pair_holds_symbol(val1, val2)) {
|
||||
if (InterValuePairs::holds_symbol(val1, val2)) {
|
||||
inter_symbol *A = InterSymbolsTable::symbol_from_data_pair(
|
||||
val1, val2, InterPackage::scope_of(P));
|
||||
if (A == NULL) internal_error("bad aliased symbol");
|
||||
|
|
|
@ -409,7 +409,7 @@ void I6TargetObjects::assign_property(code_generator *gtr, code_generation *gen,
|
|||
TEMPORARY_TEXT(val)
|
||||
CodeGen::select_temporary(gen, val);
|
||||
int inline_this = FALSE;
|
||||
if (Inter::Types::pair_holds_symbol(val1, val2)) {
|
||||
if (InterValuePairs::holds_symbol(val1, val2)) {
|
||||
inter_symbol *S = InterSymbolsTable::symbol_from_data_pair_at_node(val1, val2, X);
|
||||
if ((S) && (SymbolAnnotation::get_b(S, INLINE_ARRAY_IANN))) {
|
||||
inter_tree_node *P = InterSymbol::definition(S);
|
||||
|
|
|
@ -544,7 +544,7 @@ void CObjectModel::assign_property(code_generator *gtr, code_generation *gen,
|
|||
inter_symbol *prop_name, inter_ti val1, inter_ti val2, inter_tree_node *X) {
|
||||
|
||||
int inline_this = FALSE;
|
||||
if (Inter::Types::pair_holds_symbol(val1, val2)) {
|
||||
if (InterValuePairs::holds_symbol(val1, val2)) {
|
||||
inter_symbol *S = InterSymbolsTable::symbol_from_data_pair_at_node(val1, val2, X);
|
||||
if ((S) && (SymbolAnnotation::get_b(S, INLINE_ARRAY_IANN)))
|
||||
inline_this = TRUE;
|
||||
|
|
|
@ -70,7 +70,7 @@ base data type matches this".
|
|||
InterBookmark::scope(&in_generic_kinds), I"K_unchecked");
|
||||
Inter::Kind::new(&in_generic_kinds,
|
||||
InterSymbolsTable::id_from_symbol(I, generic_kinds_p, unchecked_kind_symbol),
|
||||
UNCHECKED_IDT, 0, 0, NULL,
|
||||
UNCHECKED_ITCONC, 0, 0, NULL,
|
||||
(inter_ti) InterBookmark::baseline(&in_generic_kinds) + 1, NULL);
|
||||
|
||||
@ And this expresses the idea of "any sort of function":
|
||||
|
@ -86,7 +86,7 @@ base data type matches this".
|
|||
InterBookmark::scope(&in_generic_kinds), I"K_unchecked_function");
|
||||
Inter::Kind::new(&in_generic_kinds,
|
||||
InterSymbolsTable::id_from_symbol(I, generic_kinds_p, unchecked_function_symbol),
|
||||
FUNCTION_IDT, 0, 2, operands,
|
||||
FUNCTION_ITCONC, 0, 2, operands,
|
||||
(inter_ti) InterBookmark::baseline(&in_generic_kinds) + 1, NULL);
|
||||
|
||||
@ And "any sort of list":
|
||||
|
@ -102,7 +102,7 @@ base data type matches this".
|
|||
InterBookmark::scope(&in_generic_kinds), I"K_unchecked_list");
|
||||
Inter::Kind::new(&in_generic_kinds,
|
||||
InterSymbolsTable::id_from_symbol(I, generic_kinds_p, unchecked_list_symbol),
|
||||
LIST_IDT, 0, 1, operands,
|
||||
LIST_ITCONC, 0, 1, operands,
|
||||
(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
|
||||
|
@ -115,7 +115,7 @@ end up being basically the same thing.)
|
|||
InterBookmark::scope(&in_generic_kinds), I"K_int32");
|
||||
Inter::Kind::new(&in_generic_kinds,
|
||||
InterSymbolsTable::id_from_symbol(I, generic_kinds_p, integer_kind_symbol),
|
||||
INT32_IDT, 0, 0, NULL,
|
||||
INT32_ITCONC, 0, 0, NULL,
|
||||
(inter_ti) InterBookmark::baseline(&in_generic_kinds) + 1, NULL);
|
||||
|
||||
@<Create the boolean kind@> =
|
||||
|
@ -124,7 +124,7 @@ end up being basically the same thing.)
|
|||
InterBookmark::scope(&in_generic_kinds), I"K_int2");
|
||||
Inter::Kind::new(&in_generic_kinds,
|
||||
InterSymbolsTable::id_from_symbol(I, generic_kinds_p, boolean_kind_symbol),
|
||||
INT2_IDT, 0, 0, NULL,
|
||||
INT2_ITCONC, 0, 0, NULL,
|
||||
(inter_ti) InterBookmark::baseline(&in_generic_kinds) + 1, NULL);
|
||||
|
||||
@<Create the string kind@> =
|
||||
|
@ -133,5 +133,5 @@ end up being basically the same thing.)
|
|||
InterBookmark::scope(&in_generic_kinds), I"K_string");
|
||||
Inter::Kind::new(&in_generic_kinds,
|
||||
InterSymbolsTable::id_from_symbol(I, generic_kinds_p, string_kind_symbol),
|
||||
TEXT_IDT, 0, 0, NULL,
|
||||
TEXT_ITCONC, 0, 0, NULL,
|
||||
(inter_ti) InterBookmark::baseline(&in_generic_kinds) + 1, NULL);
|
||||
|
|
|
@ -361,18 +361,18 @@ not already there.
|
|||
inter_ti B = (inter_ti) InterBookmark::baseline(IBM) + 1;
|
||||
inter_ti v1 = 0, v2 = 0;
|
||||
@<Assimilate a value@>;
|
||||
Produce::guard(Inter::Variable::new(IBM, MID, Inter::Types::untyped(), v1, v2, B, NULL));
|
||||
Produce::guard(Inter::Variable::new(IBM, MID, InterTypes::untyped(), v1, v2, B, NULL));
|
||||
|
||||
@<Make a general property in Inter@> =
|
||||
inter_ti MID = InterSymbolsTable::id_from_symbol(I, InterBookmark::package(IBM), made_s);
|
||||
inter_ti B = (inter_ti) InterBookmark::baseline(IBM) + 1;
|
||||
Produce::guard(Inter::Property::new(IBM, MID, Inter::Types::untyped(), B, NULL));
|
||||
Produce::guard(Inter::Property::new(IBM, MID, InterTypes::untyped(), B, NULL));
|
||||
|
||||
@<Make an either-or property in Inter@> =
|
||||
inter_ti MID = InterSymbolsTable::id_from_symbol(I, InterBookmark::package(IBM), made_s);
|
||||
inter_ti B = (inter_ti) InterBookmark::baseline(IBM) + 1;
|
||||
Produce::guard(Inter::Property::new(IBM, MID,
|
||||
Inter::Types::from_symbol(RunningPipelines::get_symbol(step, truth_state_kind_RPSYM)),
|
||||
InterTypes::from_type_name(RunningPipelines::get_symbol(step, truth_state_kind_RPSYM)),
|
||||
B, NULL));
|
||||
|
||||
@ A typical Inform 6 array declaration looks like this:
|
||||
|
@ -713,7 +713,7 @@ These have package types |_function| and |_code| respectively.
|
|||
InterSymbolsTable::create_with_unique_name(InterPackage::scope(IP), value);
|
||||
InterSymbol::make_local(loc_name);
|
||||
inter_ti B = (inter_ti) InterBookmark::baseline(IBM) + 1;
|
||||
Produce::guard(Inter::Local::new(IBM, loc_name, Inter::Types::untyped(), B, NULL));
|
||||
Produce::guard(Inter::Local::new(IBM, loc_name, InterTypes::untyped(), B, NULL));
|
||||
DISCARD_TEXT(value)
|
||||
}
|
||||
|
||||
|
@ -924,59 +924,59 @@ void CompileSplatsStage::value(pipeline_step *step, inter_bookmark *IBM, text_st
|
|||
|
||||
@<Attempt to parse this as a command grammar token@> =
|
||||
if (Str::eq(S, I"*")) {
|
||||
Inter::Types::symbol_to_pair(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
InterValuePairs::from_symbol(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
verb_directive_divider_RPSYM, I"VERB_DIRECTIVE_DIVIDER"), val1, val2); return;
|
||||
}
|
||||
if (Str::eq(S, I"->")) {
|
||||
Inter::Types::symbol_to_pair(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
InterValuePairs::from_symbol(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
verb_directive_result_RPSYM, I"VERB_DIRECTIVE_RESULT"), val1, val2); return;
|
||||
}
|
||||
if (Str::eq(S, I"reverse")) {
|
||||
Inter::Types::symbol_to_pair(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
InterValuePairs::from_symbol(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
verb_directive_reverse_RPSYM, I"VERB_DIRECTIVE_REVERSE"), val1, val2); return;
|
||||
}
|
||||
if (Str::eq(S, I"/")) {
|
||||
Inter::Types::symbol_to_pair(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
InterValuePairs::from_symbol(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
verb_directive_slash_RPSYM, I"VERB_DIRECTIVE_SLASH"), val1, val2); return;
|
||||
}
|
||||
if (Str::eq(S, I"special")) {
|
||||
Inter::Types::symbol_to_pair(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
InterValuePairs::from_symbol(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
verb_directive_special_RPSYM, I"VERB_DIRECTIVE_SPECIAL"), val1, val2); return;
|
||||
}
|
||||
if (Str::eq(S, I"number")) {
|
||||
Inter::Types::symbol_to_pair(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
InterValuePairs::from_symbol(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
verb_directive_number_RPSYM, I"VERB_DIRECTIVE_NUMBER"), val1, val2); return;
|
||||
}
|
||||
if (Str::eq(S, I"noun")) {
|
||||
Inter::Types::symbol_to_pair(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
InterValuePairs::from_symbol(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
verb_directive_noun_RPSYM, I"VERB_DIRECTIVE_NOUN"), val1, val2); return;
|
||||
}
|
||||
if (Str::eq(S, I"multi")) {
|
||||
Inter::Types::symbol_to_pair(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
InterValuePairs::from_symbol(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
verb_directive_multi_RPSYM, I"VERB_DIRECTIVE_MULTI"), val1, val2); return;
|
||||
}
|
||||
if (Str::eq(S, I"multiinside")) {
|
||||
Inter::Types::symbol_to_pair(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
InterValuePairs::from_symbol(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
verb_directive_multiinside_RPSYM, I"VERB_DIRECTIVE_MULTIINSIDE"), val1, val2); return;
|
||||
}
|
||||
if (Str::eq(S, I"multiheld")) {
|
||||
Inter::Types::symbol_to_pair(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
InterValuePairs::from_symbol(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
verb_directive_multiheld_RPSYM, I"VERB_DIRECTIVE_MULTIHELD"), val1, val2); return;
|
||||
}
|
||||
if (Str::eq(S, I"held")) {
|
||||
Inter::Types::symbol_to_pair(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
InterValuePairs::from_symbol(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
verb_directive_held_RPSYM, I"VERB_DIRECTIVE_HELD"), val1, val2); return;
|
||||
}
|
||||
if (Str::eq(S, I"creature")) {
|
||||
Inter::Types::symbol_to_pair(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
InterValuePairs::from_symbol(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
verb_directive_creature_RPSYM, I"VERB_DIRECTIVE_CREATURE"), val1, val2); return;
|
||||
}
|
||||
if (Str::eq(S, I"topic")) {
|
||||
Inter::Types::symbol_to_pair(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
InterValuePairs::from_symbol(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
verb_directive_topic_RPSYM, I"VERB_DIRECTIVE_TOPIC"), val1, val2); return;
|
||||
}
|
||||
if (Str::eq(S, I"multiexcept")) {
|
||||
Inter::Types::symbol_to_pair(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
InterValuePairs::from_symbol(I, pack, RunningPipelines::ensure_symbol(step,
|
||||
verb_directive_multiexcept_RPSYM, I"VERB_DIRECTIVE_MULTIEXCEPT"), val1, val2); return;
|
||||
}
|
||||
match_results mr = Regexp::create_mr();
|
||||
|
@ -985,7 +985,7 @@ void CompileSplatsStage::value(pipeline_step *step, inter_bookmark *IBM, text_st
|
|||
if (symb) {
|
||||
if (SymbolAnnotation::get_b(symb, SCOPE_FILTER_IANN) == FALSE)
|
||||
SymbolAnnotation::set_b(symb, SCOPE_FILTER_IANN, TRUE);
|
||||
Inter::Types::symbol_to_pair(I, pack, symb, val1, val2); return;
|
||||
InterValuePairs::from_symbol(I, pack, symb, val1, val2); return;
|
||||
}
|
||||
}
|
||||
if (Regexp::match(&mr, S, L"noun=(%i+)")) {
|
||||
|
@ -993,14 +993,14 @@ void CompileSplatsStage::value(pipeline_step *step, inter_bookmark *IBM, text_st
|
|||
if (symb) {
|
||||
if (SymbolAnnotation::get_b(symb, NOUN_FILTER_IANN) == FALSE)
|
||||
SymbolAnnotation::set_b(symb, NOUN_FILTER_IANN, TRUE);
|
||||
Inter::Types::symbol_to_pair(I, pack, symb, val1, val2); return;
|
||||
InterValuePairs::from_symbol(I, pack, symb, val1, val2); return;
|
||||
}
|
||||
}
|
||||
|
||||
@<Attempt to parse this as an identifier name for something already defined by this kit@> =
|
||||
inter_symbol *symb = Wiring::find_socket(I, S);
|
||||
if (symb) {
|
||||
Inter::Types::symbol_to_pair(I, pack, symb, val1, val2); return;
|
||||
InterValuePairs::from_symbol(I, pack, symb, val1, val2); return;
|
||||
}
|
||||
|
||||
@ At this point, maybe the reason we haven't yet recognised the constant |S| is
|
||||
|
@ -1030,7 +1030,7 @@ before they are needed.
|
|||
CompileSplatsStage::compute_r(step, IBM, sch->node_tree);
|
||||
if (result_s == NULL)
|
||||
PipelineErrors::kit_error("Inform 6 constant in kit too complex", S);
|
||||
Inter::Types::symbol_to_pair(I, pack, result_s, val1, val2);
|
||||
InterValuePairs::from_symbol(I, pack, result_s, val1, val2);
|
||||
|
||||
@ So this is the recursion. Note that we calculate $-x$ as $0 - x$, thus
|
||||
reducing unary subtraction to a case of binary subtraction.
|
||||
|
@ -1102,13 +1102,13 @@ inter_symbol *CompileSplatsStage::compute_binary_op(inter_ti op, pipeline_step *
|
|||
int pos = pair_list->W.extent;
|
||||
Inode::extend_instruction_by(pair_list, 4);
|
||||
if (i1) {
|
||||
Inter::Types::symbol_to_pair(I, pack, i1,
|
||||
InterValuePairs::from_symbol(I, pack, i1,
|
||||
&(pair_list->W.instruction[pos]), &(pair_list->W.instruction[pos+1]));
|
||||
} else {
|
||||
pair_list->W.instruction[pos] = LITERAL_IVAL; pair_list->W.instruction[pos+1] = 0;
|
||||
}
|
||||
if (i2) {
|
||||
Inter::Types::symbol_to_pair(I, pack, i2,
|
||||
InterValuePairs::from_symbol(I, pack, i2,
|
||||
&(pair_list->W.instruction[pos+2]), &(pair_list->W.instruction[pos+3]));
|
||||
} else {
|
||||
pair_list->W.instruction[pos+2] = LITERAL_IVAL; pair_list->W.instruction[pos+3] = 0;
|
||||
|
@ -1139,7 +1139,7 @@ inter_symbol *CompileSplatsStage::compute_eval(pipeline_step *step,
|
|||
inter_ti v1 = UNDEF_IVAL, v2 = 0;
|
||||
if (t->constant_number >= 0) {
|
||||
v1 = LITERAL_IVAL; v2 = (inter_ti) t->constant_number;
|
||||
} else if (Inter::Types::read_int_in_I6_notation(t->material, &v1, &v2) == FALSE) {
|
||||
} else if (InterValuePairs::read_int_in_I6_notation(t->material, &v1, &v2) == FALSE) {
|
||||
return NULL;
|
||||
}
|
||||
if (v1 == UNDEF_IVAL) return NULL;
|
||||
|
|
|
@ -85,7 +85,7 @@ void DetectIndirectCallsStage::traverse_code_tree(inter_tree_node *P, pipeline_s
|
|||
@<Insert the variable as the new first argument@> =
|
||||
inter_bookmark IBM = InterBookmark::first_child_of(F);
|
||||
inter_ti val1 = 0, val2 = 0;
|
||||
Inter::Types::symbol_to_pair(InterBookmark::tree(&IBM),
|
||||
InterValuePairs::from_symbol(InterBookmark::tree(&IBM),
|
||||
InterBookmark::package(&IBM), var, &val1, &val2);
|
||||
Inter::Val::new(&IBM, Inter::Types::untyped(),
|
||||
Inter::Val::new(&IBM, InterTypes::untyped(),
|
||||
(int) F->W.instruction[LEVEL_IFLD] + 1, val1, val2, NULL);
|
||||
|
|
|
@ -82,7 +82,7 @@ in |texts|.
|
|||
|
||||
Wiring::wire_to(ref_s, latest_s);
|
||||
inter_ti val1 = 0, val2 = 0;
|
||||
Inter::Types::symbol_to_pair(I, InterPackage::container(P), ref_s, &val1, &val2);
|
||||
InterValuePairs::from_symbol(I, InterPackage::container(P), ref_s, &val1, &val2);
|
||||
P->W.instruction[FORMAT_CONST_IFLD] = CONSTANT_DIRECT;
|
||||
P->W.instruction[DATA_CONST_IFLD] = val1;
|
||||
P->W.instruction[DATA_CONST_IFLD+1] = val2;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue