mirror of
https://github.com/ganelson/inform.git
synced 2024-06-29 05:24:57 +03:00
Consolidated architectural constants
This commit is contained in:
parent
0a410be737
commit
3ffaf8c77a
|
@ -146,7 +146,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">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"veneer"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">architecture_package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pack</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="function-syntax">Site::main_package</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">Site::main_package</span></span>:<br/><a href="1-bs.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="function-syntax">Site::main_package</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">Site::main_package</span></span>:<br/><a href="1-bs.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">main_package</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="1-pck.html#SP14" class="function-link"><span class="function-syntax">Packaging::incarnate</span></a><span class="plain-syntax">(</span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::main_request</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">));</span>
|
||||
|
@ -209,7 +209,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="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="function-syntax">Site::architecture_package</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">Site::architecture_package</span></span>:<br/><a href="1-bs.html#SP3">§3</a><br/>Emitting Inter Schemas - <a href="2-eis.html#SP2_1">§2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="function-syntax">Site::architecture_package</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">Site::architecture_package</span></span>:<br/>Emitting Inter Schemas - <a href="2-eis.html#SP2_1">§2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">architecture_package</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="1-pck.html#SP14" class="function-link"><span class="function-syntax">Packaging::incarnate</span></a><span class="plain-syntax">(</span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::architecture_request</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">));</span>
|
||||
|
@ -219,15 +219,15 @@ 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="identifier-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="function-syntax">Site::architecture_bookmark</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">Site::architecture_bookmark</span></span>:<br/><a href="1-bs.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="function-syntax">Site::architecture_bookmark</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::architecture_request</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><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">architecture_bookmark</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">create_these_architectural_symbols_on_demand</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">Site::find_architectural_symbol</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">Site::find_architectural_symbol</span></span>:<br/>Emitting Inter Schemas - <a href="2-eis.html#SP3_10_1">§3.10.1</a>, <a href="2-eis.html#SP4">§4</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">text_stream</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">unchecked_kind_symbol</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">Site::find_architectural_symbol</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">Site::find_architectural_symbol</span></span>:<br/>Emitting Inter Schemas - <a href="2-eis.html#SP3_10_1">§3.10.1</a>, <a href="2-eis.html#SP4">§4</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">text_stream</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">uks</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">arch</span><span class="plain-syntax"> = </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::architecture_package</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_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tab</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">arch</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">InterSymbolsTables::symbol_from_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>
|
||||
|
@ -244,21 +244,53 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Dictionaries::create</span><span class="plain-syntax">(</span><span class="identifier-syntax">create_these_architectural_symbols_on_demand</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Object"</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">Dictionaries::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">create_these_architectural_symbols_on_demand</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">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTables::symbol_from_name_creating</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</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">S</span><span class="plain-syntax"> = </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</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::Symbols::annotate_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">VENEER_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax"> = </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::architecture_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-prd.html#SP2" 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">InterSymbolsTables::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Bookmarks::tree</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">arch</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">InterSymbolsTables::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Bookmarks::tree</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">arch</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">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Inter::Bookmarks::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="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</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_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">Site::arch_constant</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">Site::arch_constant</span></span>:<br/><a href="1-bs.html#SP4">§4</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">text_stream</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">arch</span><span class="plain-syntax"> = </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::architecture_package</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_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tab</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">arch</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">InterSymbolsTables::symbol_from_name_creating</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</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">Inter::Symbols::annotate_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">ARCHITECTURAL_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax"> = </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::architecture_bookmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-prd.html#SP2" 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">InterSymbolsTables::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">arch</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">InterSymbolsTables::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">arch</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Inter::Bookmarks::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="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="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">Site::arch_constant_hex</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">Site::arch_constant_hex</span></span>:<br/><a href="1-bs.html#SP4">§4</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">text_stream</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Symbols::annotate_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">HEX_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</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_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">Site::arch_constant_signed</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">Site::arch_constant_signed</span></span>:<br/><a href="1-bs.html#SP4">§4</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">text_stream</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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Symbols::annotate_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">SIGNED_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">S</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>Lastly, we define the constants <span class="extract"><span class="extract-syntax">WORDSIZE</span></span>, <span class="extract"><span class="extract-syntax">DEBUG</span></span> (if applicable) and
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>These constants mostly have obvious meanings, but a few notes:
|
||||
</p>
|
||||
|
||||
<ul class="items"><li>(1) <span class="extract"><span class="extract-syntax">NULL</span></span>, in our runtime, is -1, and not 0 as it would be in C. This is
|
||||
emitted as "unchecked" to avoid the value being rejected as being too large,
|
||||
as it would be if it were viewed as a signed rather than unsigned integer.
|
||||
</li><li>(2) <span class="extract"><span class="extract-syntax">IMPROBABLE_VALUE</span></span> is one which is unlikely even if possible to be a
|
||||
genuine I7 value. The efficiency of runtime code handling tables depends on
|
||||
how well chosen this is: it would ran badly if we chose 1, for instance.
|
||||
</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>Lastly, we define the constants <span class="extract"><span class="extract-syntax">WORDSIZE</span></span>, <span class="extract"><span class="extract-syntax">DEBUG</span></span> (if applicable) and
|
||||
either <span class="extract"><span class="extract-syntax">TARGET_ZCODE</span></span> or <span class="extract"><span class="extract-syntax">TARGET_GLULX</span></span>, as appropriate. These really now mean
|
||||
"target 16-bit" or "target 32-bit", and their names are a hangover from when
|
||||
Inform 7 could only work with Inform 6. The reason we need to define these
|
||||
|
@ -272,41 +304,33 @@ be able to resolve conditional compilation matter placed inside, e.g.,
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Site::make_architectural_definitions</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_architecture</span><span class="plain-syntax"> *</span><span class="identifier-syntax">current_architecture</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">unchecked_kind_symbol</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_architecture</span><span class="plain-syntax"> *</span><span class="identifier-syntax">current_architecture</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">uks</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">current_architecture</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 architecture set"</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">Z</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Architectures::is_16_bit</span><span class="plain-syntax">(</span><span class="identifier-syntax">current_architecture</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">D</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Architectures::debug_enabled</span><span class="plain-syntax">(</span><span class="identifier-syntax">current_architecture</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">veneer_p</span><span class="plain-syntax"> = </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::architecture_package</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_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">in_veneer</span><span class="plain-syntax"> = </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::architecture_bookmark</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vi_unchecked</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::create_with_unique_name</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Bookmarks::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">in_veneer</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">Wiring::wire_to</span><span class="plain-syntax">(</span><span class="identifier-syntax">vi_unchecked</span><span class="plain-syntax">, </span><span class="identifier-syntax">unchecked_kind_symbol</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTables::create_with_unique_name</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Bookmarks::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">in_veneer</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"WORDSIZE"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Constant::new_numerical</span><span class="plain-syntax">(</span><span class="identifier-syntax">in_veneer</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">veneer_p</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">InterSymbolsTables::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">veneer_p</span><span class="plain-syntax">, </span><span class="identifier-syntax">vi_unchecked</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">Z</span><span class="plain-syntax">)?2:4,</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Inter::Bookmarks::baseline</span><span class="plain-syntax">(</span><span class="identifier-syntax">in_veneer</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">target_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTables::create_with_unique_name</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Bookmarks::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">in_veneer</span><span class="plain-syntax">), (</span><span class="identifier-syntax">Z</span><span class="plain-syntax">)?</span><span class="identifier-syntax">I</span><span class="string-syntax">"TARGET_ZCODE"</span><span class="plain-syntax">:</span><span class="identifier-syntax">I</span><span class="string-syntax">"TARGET_GLULX"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Constant::new_numerical</span><span class="plain-syntax">(</span><span class="identifier-syntax">in_veneer</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">veneer_p</span><span class="plain-syntax">, </span><span class="identifier-syntax">target_name</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">veneer_p</span><span class="plain-syntax">, </span><span class="identifier-syntax">vi_unchecked</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LITERAL_IVAL</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">Inter::Bookmarks::baseline</span><span class="plain-syntax">(</span><span class="identifier-syntax">in_veneer</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">D</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTables::create_with_unique_name</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Bookmarks::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">in_veneer</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"DEBUG"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Constant::new_numerical</span><span class="plain-syntax">(</span><span class="identifier-syntax">in_veneer</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">veneer_p</span><span class="plain-syntax">, </span><span class="identifier-syntax">D_name</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">veneer_p</span><span class="plain-syntax">, </span><span class="identifier-syntax">vi_unchecked</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LITERAL_IVAL</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">Inter::Bookmarks::baseline</span><span class="plain-syntax">(</span><span class="identifier-syntax">in_veneer</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Z</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WORDSIZE"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant_hex</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"NULL"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="constant-syntax">0xffff</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant_hex</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WORD_HIGHBIT"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="constant-syntax">0x8000</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant_hex</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WORD_NEXTTOHIGHBIT"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="constant-syntax">0x4000</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant_hex</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"IMPROBABLE_VALUE"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="constant-syntax">0x7fe3</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"MAX_POSITIVE_NUMBER"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="constant-syntax">32767</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant_signed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"MIN_NEGATIVE_NUMBER"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, -32768);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TARGET_ZCODE"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WORDSIZE"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant_hex</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"NULL"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="constant-syntax">0xffffffff</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant_hex</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WORD_HIGHBIT"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="constant-syntax">0x80000000</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant_hex</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WORD_NEXTTOHIGHBIT"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="constant-syntax">0x40000000</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant_hex</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"IMPROBABLE_VALUE"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="constant-syntax">0xdeadce11</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"MAX_POSITIVE_NUMBER"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="constant-syntax">2147483647</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant_signed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"MIN_NEGATIVE_NUMBER"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, -2147483648);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"INDIV_PROP_START"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TARGET_GLULX"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">D</span><span class="plain-syntax">) </span><a href="1-bs.html#SP2" class="function-link"><span class="function-syntax">Site::arch_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DEBUG"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uks</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_package</span><span class="plain-syntax"> *</span><span class="function-syntax">Site::make_linkage_package</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">) {</span>
|
||||
|
@ -348,11 +372,11 @@ be able to resolve conditional compilation matter placed inside, e.g.,
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">assimilation_package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">M</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="function-syntax">Site::get_cir</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">Site::get_cir</span></span>:<br/>Producing Inter - <a href="3-prd.html#SP3">§3</a>, <a href="3-prd.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="function-syntax">Site::get_cir</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Site::get_cir</span></span>:<br/>Producing Inter - <a href="3-prd.html#SP3">§3</a>, <a href="3-prd.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">current_inter_routine</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">Site::set_cir</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">Site::set_cir</span></span>:<br/>Producing Inter - <a href="3-prd.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Site::set_cir</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">Site::set_cir</span></span>:<br/>Producing Inter - <a href="3-prd.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_package</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">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">current_inter_routine</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -270,7 +270,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">block_iname</span><span class="plain-syntax"> = </span><a href="1-pck.html#SP5" class="function-link"><span class="function-syntax">Packaging::make_iname_within</span></a><span class="plain-syntax">(</span><a href="1-in.html#SP7" class="function-link"><span class="function-syntax">InterNames::location</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"block"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"routine outside function package"</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">save_ib</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Bookmarks::snapshot</span><span class="plain-syntax">(</span><a href="1-pck.html#SP8" 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><a href="1-bs.html#SP3" class="function-link"><span class="function-syntax">Site::set_cir</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><a href="3-prd.html#SP2" class="function-link"><span class="function-syntax">Produce::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">block_iname</span><span class="plain-syntax">, </span><a href="1-pt.html#SP1" class="function-link"><span class="function-syntax">PackageTypes::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_code"</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP4" class="function-link"><span class="function-syntax">Site::set_cir</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><a href="3-prd.html#SP2" class="function-link"><span class="function-syntax">Produce::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">block_iname</span><span class="plain-syntax">, </span><a href="1-pt.html#SP1" class="function-link"><span class="function-syntax">PackageTypes::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_code"</span><span class="plain-syntax">)));</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="3-prd.html#SP2" class="function-link"><span class="function-syntax">Produce::guard</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Code::new</span><span class="plain-syntax">(</span><a href="1-pck.html#SP8" 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="reserved-syntax">int</span><span class="plain-syntax">) </span><a href="3-prd.html#SP2" class="function-link"><span class="function-syntax">Produce::baseline</span></a><span class="plain-syntax">(</span><a href="1-pck.html#SP8" 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="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
|
||||
|
@ -284,7 +284,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">sprdata</span><span class="plain-syntax">.</span><span class="element-syntax">code_bookmark</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Bookmarks::snapshot</span><span class="plain-syntax">(</span><a href="1-pck.html#SP8" 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="reserved-syntax">code_insertion_point</span><span class="plain-syntax"> </span><span class="identifier-syntax">cip</span><span class="plain-syntax"> = </span><a href="3-prd.html#SP3" class="function-link"><span class="function-syntax">Produce::new_cip</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, &(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">site</span><span class="plain-syntax">.</span><span class="element-syntax">sprdata</span><span class="plain-syntax">.</span><span class="element-syntax">code_bookmark</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="3-prd.html#SP3" class="function-link"><span class="function-syntax">Produce::push_code_position</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">cip</span><span class="plain-syntax">, </span><span class="identifier-syntax">save_ib</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-bs.html#SP3" class="function-link"><span class="function-syntax">Site::get_cir</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="1-bs.html#SP4" class="function-link"><span class="function-syntax">Site::get_cir</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">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Produce::kernel</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="reserved-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">public_name</span><span class="plain-syntax">) {</span>
|
||||
|
@ -301,12 +301,12 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Produce::end_block</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP3" class="function-link"><span class="function-syntax">Site::set_cir</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-bs.html#SP4" class="function-link"><span class="function-syntax">Site::set_cir</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-prd.html#SP3" class="function-link"><span class="function-syntax">Produce::pop_code_position</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">Produce::emitting_routine</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="1-bs.html#SP3" class="function-link"><span class="function-syntax">Site::get_cir</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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="1-bs.html#SP4" class="function-link"><span class="function-syntax">Site::get_cir</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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>
|
||||
|
||||
|
@ -481,7 +481,7 @@ function togglePopup(material_id) {
|
|||
<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">lab_name</span><span class="plain-syntax"> = </span><a href="3-prd.html#SP4" class="function-link"><span class="function-syntax">Produce::local_exists</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">lname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">lab_name</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">lab_name</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">lab_name</span><span class="plain-syntax"> = </span><a href="3-prd.html#SP4" class="function-link"><span class="function-syntax">Produce::new_local_symbol</span></a><span class="plain-syntax">(</span><a href="1-bs.html#SP3" class="function-link"><span class="function-syntax">Site::get_cir</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">lname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">lab_name</span><span class="plain-syntax"> = </span><a href="3-prd.html#SP4" class="function-link"><span class="function-syntax">Produce::new_local_symbol</span></a><span class="plain-syntax">(</span><a href="1-bs.html#SP4" class="function-link"><span class="function-syntax">Site::get_cir</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">lname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Symbols::label</span><span class="plain-syntax">(</span><span class="identifier-syntax">lab_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">lab_name</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -499,10 +499,10 @@ API in <a href="../imperative-module/3-lv.html" class="internal">Local Variables
|
|||
<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">Produce::local</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lname</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">annot</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">comm</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="1-bs.html#SP3" class="function-link"><span class="function-syntax">Site::get_cir</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="1-bs.html#SP4" class="function-link"><span class="function-syntax">Site::get_cir</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"local variable emitted outside function"</span><span 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">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">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">local_s</span><span class="plain-syntax"> = </span><a href="3-prd.html#SP4" class="function-link"><span class="function-syntax">Produce::new_local_symbol</span></a><span class="plain-syntax">(</span><a href="1-bs.html#SP3" class="function-link"><span class="function-syntax">Site::get_cir</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">lname</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">local_s</span><span class="plain-syntax"> = </span><a href="3-prd.html#SP4" class="function-link"><span class="function-syntax">Produce::new_local_symbol</span></a><span class="plain-syntax">(</span><a href="1-bs.html#SP4" class="function-link"><span class="function-syntax">Site::get_cir</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">lname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_s</span><span class="plain-syntax"> = </span><a href="3-prd.html#SP4" 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_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">ID</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">comm</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">comm</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">)) {</span>
|
||||
|
@ -518,7 +518,7 @@ API in <a href="../imperative-module/3-lv.html" class="internal">Local Variables
|
|||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">Produce::local_exists</span><button class="popup" onclick="togglePopup('usagePopup33')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup33">Usage of <span class="code-font"><span class="function-syntax">Produce::local_exists</span></span>:<br/><a href="3-prd.html#SP3">§3</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lname</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">InterSymbolsTables::symbol_from_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><a href="1-bs.html#SP3" class="function-link"><span class="function-syntax">Site::get_cir</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)), </span><span class="identifier-syntax">lname</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">InterSymbolsTables::symbol_from_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><a href="1-bs.html#SP4" class="function-link"><span class="function-syntax">Site::get_cir</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)), </span><span class="identifier-syntax">lname</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="function-syntax">Produce::seek_symbol</span><button class="popup" onclick="togglePopup('usagePopup34')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup34">Usage of <span class="code-font"><span class="function-syntax">Produce::seek_symbol</span></span>:<br/>Emitting Inter Schemas - <a href="2-eis.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-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>
|
||||
|
|
|
@ -100,6 +100,8 @@ function togglePopup(material_id) {
|
|||
<span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">Inter::Symbols::new</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">Inter::Symbols::new</span></span>:<br/>Symbols Tables - <a href="2-st.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</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">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">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"symbol cannot have empty text as identifier"</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">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"MAX_POSITIVE_NUMBER_1"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"MPN1"</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><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">symb</span><span class="plain-syntax">-></span><span class="identifier-syntax">owning_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">symb</span><span class="plain-syntax">-></span><span class="identifier-syntax">symbol_ID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ID</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -254,7 +254,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">symb</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">i</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-cnn.html#SP1" class="function-link"><span class="function-syntax">Wiring::is_wired</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">target</span><span class="plain-syntax"> = </span><a href="2-cnn.html#SP1" class="function-link"><span class="function-syntax">Wiring::cable_end</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><a href="2-sym.html#SP4" class="function-link"><span class="function-syntax">Inter::Symbols::read_annotation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">VENEER_IANN</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><a href="2-sym.html#SP4" class="function-link"><span class="function-syntax">Inter::Symbols::read_annotation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">target</span><span class="plain-syntax">, </span><span class="constant-syntax">ARCHITECTURAL_IANN</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-cnn.html#SP1" class="function-link"><span class="function-syntax">Wiring::wire_to</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="identifier-syntax">Site::find_architectural_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">ipct</span><span class="plain-syntax">-></span><span class="element-syntax">destination</span><span class="plain-syntax">-></span><span class="element-syntax">package_head</span><span class="plain-syntax">-></span><span class="element-syntax">tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">target</span><span class="plain-syntax">-></span><span class="element-syntax">symbol_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">NULL</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-sym.html#SP2" class="function-link"><span class="function-syntax">Inter::Symbols::get_scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">target</span><span class="plain-syntax">) == </span><span class="constant-syntax">PLUG_ISYMS</span><span class="plain-syntax">) {</span>
|
||||
|
|
|
@ -108,6 +108,7 @@ function togglePopup(material_id) {
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERBARRAY_IANN</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXPLICIT_VARIABLE_IANN</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEXT_LITERAL_IANN</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">ARCHITECTURAL_IANN</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">VENEER_IANN</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">SYNOPTIC_IANN</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">I6_GLOBAL_OFFSET_IANN</span>
|
||||
|
@ -169,6 +170,7 @@ symbol.
|
|||
<span class="plain-syntax"> </span><a href="2-ann.html#SP2" class="function-link"><span class="function-syntax">Inter::Annotations::form</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERBARRAY_IANN</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"__verb"</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#SP2" class="function-link"><span class="function-syntax">Inter::Annotations::form</span></a><span class="plain-syntax">(</span><span class="constant-syntax">EXPLICIT_VARIABLE_IANN</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"__explicit_variable"</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#SP2" class="function-link"><span class="function-syntax">Inter::Annotations::form</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TEXT_LITERAL_IANN</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"__text_literal"</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#SP2" class="function-link"><span class="function-syntax">Inter::Annotations::form</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ARCHITECTURAL_IANN</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"__architectural"</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#SP2" class="function-link"><span class="function-syntax">Inter::Annotations::form</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VENEER_IANN</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"__veneer"</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#SP2" class="function-link"><span class="function-syntax">Inter::Annotations::form</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SYNOPTIC_IANN</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"__synoptic"</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#SP2" class="function-link"><span class="function-syntax">Inter::Annotations::form</span></a><span class="plain-syntax">(</span><span class="constant-syntax">I6_GLOBAL_OFFSET_IANN</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"__global_offset"</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -340,7 +340,7 @@ move, add or remove some of these symbols.
|
|||
<span class="definition-keyword">define</span> <span class="constant-syntax">MAX_RPSYM</span><span class="plain-syntax"> </span><span class="constant-syntax">100</span>
|
||||
</pre>
|
||||
<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">RunningPipelines::get_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">RunningPipelines::get_symbol</span></span>:<br/><a href="2-rp.html#SP6">§6</a><br/>Parsing Stages - <a href="3-ps.html#SP2_3">§2.3</a><br/>Compile Splats Stage - <a href="3-css.html#SP2">§2</a>, <a href="3-css.html#SP3_1_3_1_1_1">§3.1.3.1.1.1</a>, <a href="3-css.html#SP3_1_3_1_3">§3.1.3.1.3</a>, <a href="3-css.html#SP3_1_3_1_4_1">§3.1.3.1.4.1</a>, <a href="3-css.html#SP3_1_3_1_4_2">§3.1.3.1.4.2</a>, <a href="3-css.html#SP3_1_3_1_4_3">§3.1.3.1.4.3</a>, <a href="3-css.html#SP3_1_3_1_4_4">§3.1.3.1.4.4</a>, <a href="3-css.html#SP3_1_3_1_4_5">§3.1.3.1.4.5</a>, <a href="3-css.html#SP3_1_3_1_4_5_3_1_1">§3.1.3.1.4.5.3.1.1</a>, <a href="3-css.html#SP3_1_3_1_4_5_3_1_2">§3.1.3.1.4.5.3.1.2</a>, <a href="3-css.html#SP3_1_3_1_4_5_3_1_3">§3.1.3.1.4.5.3.1.3</a>, <a href="3-css.html#SP3_2_3_1">§3.2.3.1</a>, <a href="3-css.html#SP3_2_3_2">§3.2.3.2</a>, <a href="3-css.html#SP3_2_3_2_1">§3.2.3.2.1</a>, <a href="3-css.html#SP3_2_3_3">§3.2.3.3</a>, <a href="3-css.html#SP6">§6</a>, <a href="3-css.html#SP9">§9</a>, <a href="3-css.html#SP10_1">§10.1</a><br/>Detect Indirect Calls Stage - <a href="4-dics.html#SP2_1_2">§2.1.2</a><br/>Synoptic Utilities - <a href="5-su.html#SP4">§4</a>, <a href="5-su.html#SP5">§5</a>, <a href="5-su.html#SP7">§7</a><br/>Kinds - <a href="5-knd.html#SP1_13">§1.13</a>, <a href="5-knd.html#SP2">§2</a><br/>Eliminate Redundant Matter Stage - <a href="6-erms.html#SP2">§2</a>, <a href="6-erms.html#SP3_3">§3.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">RunningPipelines::get_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">RunningPipelines::get_symbol</span></span>:<br/><a href="2-rp.html#SP6">§6</a><br/>Parsing Stages - <a href="3-ps.html#SP2_3">§2.3</a><br/>Compile Splats Stage - <a href="3-css.html#SP2">§2</a>, <a href="3-css.html#SP3_1_3_1_1_1">§3.1.3.1.1.1</a>, <a href="3-css.html#SP3_1_3_1_3">§3.1.3.1.3</a>, <a href="3-css.html#SP3_1_3_1_4_1">§3.1.3.1.4.1</a>, <a href="3-css.html#SP3_1_3_1_4_2">§3.1.3.1.4.2</a>, <a href="3-css.html#SP3_1_3_1_4_3">§3.1.3.1.4.3</a>, <a href="3-css.html#SP3_1_3_1_4_4">§3.1.3.1.4.4</a>, <a href="3-css.html#SP3_1_3_1_4_5">§3.1.3.1.4.5</a>, <a href="3-css.html#SP3_1_3_1_4_5_3_1_1">§3.1.3.1.4.5.3.1.1</a>, <a href="3-css.html#SP3_1_3_1_4_5_3_1_2">§3.1.3.1.4.5.3.1.2</a>, <a href="3-css.html#SP3_1_3_1_4_5_3_1_3">§3.1.3.1.4.5.3.1.3</a>, <a href="3-css.html#SP3_2_3_1">§3.2.3.1</a>, <a href="3-css.html#SP3_2_3_2">§3.2.3.2</a>, <a href="3-css.html#SP3_2_3_2_1">§3.2.3.2.1</a>, <a href="3-css.html#SP3_2_3_3">§3.2.3.3</a>, <a href="3-css.html#SP6">§6</a>, <a href="3-css.html#SP9">§9</a>, <a href="3-css.html#SP10_1">§10.1</a>, <a href="3-css.html#SP10_2">§10.2</a><br/>Detect Indirect Calls Stage - <a href="4-dics.html#SP2_1_2">§2.1.2</a><br/>Synoptic Utilities - <a href="5-su.html#SP4">§4</a>, <a href="5-su.html#SP5">§5</a>, <a href="5-su.html#SP7">§7</a><br/>Kinds - <a href="5-knd.html#SP1_13">§1.13</a>, <a href="5-knd.html#SP2">§2</a><br/>Eliminate Redundant Matter Stage - <a href="6-erms.html#SP2">§2</a>, <a href="6-erms.html#SP3_3">§3.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</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">id</span><span class="plain-syntax"> < </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">id</span><span class="plain-syntax"> >= </span><span class="constant-syntax">MAX_RPSYM</span><span class="plain-syntax">)) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"bad 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">step</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 step"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">tree</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -1486,16 +1486,20 @@ the leaves:
|
|||
Here we run into, say, <span class="extract"><span class="extract-syntax">MAX_ELEPHANTS</span></span>, some identifier which clearly refers
|
||||
to something defined elsewhere. If it has already been defined in the kit
|
||||
being compiled, then there's a socket of that name already, and we can use
|
||||
that as the answer. Otherwise we must assume it will be declared either later
|
||||
or in another compilation unit, so we create a plug called <span class="extract"><span class="extract-syntax">MAX_ELEPHANTS</span></span>
|
||||
and let the linker stage worry about what it means later on.
|
||||
that as the answer; similarly if it's an architectural constant such as <span class="extract"><span class="extract-syntax">WORDSIZE</span></span>.
|
||||
Otherwise we must assume it will be declared either later or in another
|
||||
compilation unit, so we create a plug called <span class="extract"><span class="extract-syntax">MAX_ELEPHANTS</span></span> and let the
|
||||
linker stage worry about what it means later on.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">This leaf is a symbol name</span><span class="named-paragraph-number">10.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">result_s</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">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">material</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">result_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Site::find_architectural_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</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="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">unchecked_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">result_s</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">result_s</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">result_s</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">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">material</span><span 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="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">result_s</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Wiring::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</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>
|
||||
</pre>
|
||||
|
|
|
@ -113,7 +113,7 @@ enforced; it's fine to store arbitrary data with <span class="extract"><span cla
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::begin_verb</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">EmitArrays::begin_verb</span></span>:<br/>Command Grammars - <a href="7-cg.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::begin_verb</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">EmitArrays::begin_verb</span></span>:<br/>Command Grammars - <a href="7-cg.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP9" class="function-link"><span class="function-syntax">EmitArrays::begin_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_iname_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">VERBARRAY_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
|
@ -167,7 +167,7 @@ which would be a typesafe list in I7, so they can be absolutely any data,
|
|||
<span class="plain-syntax"> </span><a href="2-ea.html#SP10" class="function-link"><span class="function-syntax">EmitArrays::entry_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::dword_entry</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::dword_entry</span></span>:<br/>Command Grammars - <a href="7-cg.html#SP9">§9</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP2">§2</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_1">§1.1</a><br/>Name Properties - <a href="7-np.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">content</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::dword_entry</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::dword_entry</span></span>:<br/>Command Grammars - <a href="7-cg.html#SP10">§10</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP2">§2</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_1">§1.1</a><br/>Name Properties - <a href="7-np.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">content</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">v1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::dword_value</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), &</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v2</span><span class="plain-syntax">, </span><span class="identifier-syntax">content</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP10" class="function-link"><span class="function-syntax">EmitArrays::entry_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax">);</span>
|
||||
|
@ -199,7 +199,7 @@ difference to compiled code.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::end</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::end</span></span>:<br/>Short Names - <a href="2-sn.html#SP4">§4</a><br/>List Literals - <a href="4-ll.html#SP1">§1</a>, <a href="4-ll.html#SP2">§2</a><br/>Text Literals - <a href="4-tl.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">§1</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Door Instances - <a href="5-di.html#SP6">§6</a><br/>Multimedia - <a href="5-mlt.html#SP2_1">§2.1</a>, <a href="5-mlt.html#SP2_2">§2.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1">§2.1.1</a>, <a href="5-tbl.html#SP2_1_1_1">§2.1.1.1</a>, <a href="5-tbl.html#SP2_2">§2.2</a><br/>Relations - <a href="5-rlt.html#SP7_3">§7.3</a>, <a href="5-rlt.html#SP7_3_2">§7.3.2</a>, <a href="5-rlt.html#SP8">§8</a>, <a href="5-rlt.html#SP11">§11</a>, <a href="5-rlt.html#SP11_3">§11.3</a><br/>Kind IDs - <a href="5-ki.html#SP9_1">§9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Action Bitmap Property - <a href="6-abp.html#SP1">§1</a><br/>Command Grammars - <a href="7-cg.html#SP9">§9</a><br/>Name Properties - <a href="7-np.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::end</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::end</span></span>:<br/>Short Names - <a href="2-sn.html#SP4">§4</a><br/>List Literals - <a href="4-ll.html#SP1">§1</a>, <a href="4-ll.html#SP2">§2</a><br/>Text Literals - <a href="4-tl.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">§1</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Door Instances - <a href="5-di.html#SP6">§6</a><br/>Multimedia - <a href="5-mlt.html#SP2_1">§2.1</a>, <a href="5-mlt.html#SP2_2">§2.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1">§2.1.1</a>, <a href="5-tbl.html#SP2_1_1_1">§2.1.1.1</a>, <a href="5-tbl.html#SP2_2">§2.2</a><br/>Relations - <a href="5-rlt.html#SP7_3">§7.3</a>, <a href="5-rlt.html#SP7_3_2">§7.3.2</a>, <a href="5-rlt.html#SP8">§8</a>, <a href="5-rlt.html#SP11">§11</a>, <a href="5-rlt.html#SP11_3">§11.3</a><br/>Kind IDs - <a href="5-ki.html#SP9_1">§9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Action Bitmap Property - <a href="6-abp.html#SP1">§1</a><br/>Command Grammars - <a href="7-cg.html#SP10">§10</a><br/>Name Properties - <a href="7-np.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP11" class="function-link"><span class="function-syntax">EmitArrays::end_inner</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Packaging::exit</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -98,7 +98,7 @@ reference points. But as newly-created packages they are initially empty.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Packaging::incarnate</span><span class="plain-syntax">(</span><span class="identifier-syntax">Packaging::get_unit</span><span class="plain-syntax">(</span><span class="identifier-syntax">main_emission_tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"synoptic"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_module"</span><span class="plain-syntax">)-></span><span class="identifier-syntax">the_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">main_emission_tree</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::tree</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Emit::tree</span></span>:<br/><a href="2-emt.html#SP4">§4</a>, <a href="2-emt.html#SP5">§5</a>, <a href="2-emt.html#SP7">§7</a>, <a href="2-emt.html#SP8">§8</a>, <a href="2-emt.html#SP9">§9</a>, <a href="2-emt.html#SP10">§10</a>, <a href="2-emt.html#SP11">§11</a>, <a href="2-emt.html#SP12">§12</a>, <a href="2-emt.html#SP14">§14</a>, <a href="2-emt.html#SP15">§15</a>, <a href="2-emt.html#SP16">§16</a>, <a href="2-emt.html#SP17">§17</a>, <a href="2-emt.html#SP21">§21</a><br/>Hierarchy - <a href="2-hrr.html#SP1">§1</a>, <a href="2-hrr.html#SP2">§2</a>, <a href="2-hrr.html#SP8">§8</a>, <a href="2-hrr.html#SP9">§9</a>, <a href="2-hrr.html#SP11">§11</a>, <a href="2-hrr.html#SP12">§12</a>, <a href="2-hrr.html#SP13">§13</a>, <a href="2-hrr.html#SP14">§14</a>, <a href="2-hrr.html#SP15">§15</a>, <a href="2-hrr.html#SP16">§16</a>, <a href="2-hrr.html#SP17">§17</a>, <a href="2-hrr.html#SP18">§18</a>, <a href="2-hrr.html#SP19">§19</a>, <a href="2-hrr.html#SP20">§20</a>, <a href="2-hrr.html#SP21">§21</a>, <a href="2-hrr.html#SP22">§22</a><br/>Compilation Units - <a href="2-cu.html#SP2_1">§2.1</a><br/>Emit Code - <a href="2-ec.html#SP2">§2</a>, <a href="2-ec.html#SP3">§3</a>, <a href="2-ec.html#SP4">§4</a>, <a href="2-ec.html#SP5">§5</a>, <a href="2-ec.html#SP7">§7</a>, <a href="2-ec.html#SP9">§9</a>, <a href="2-ec.html#SP11">§11</a>, <a href="2-ec.html#SP12">§12</a>, <a href="2-ec.html#SP13">§13</a>, <a href="2-ec.html#SP14">§14</a>, <a href="2-ec.html#SP15">§15</a>, <a href="2-ec.html#SP16">§16</a><br/>Emit Arrays - <a href="2-ea.html#SP4">§4</a>, <a href="2-ea.html#SP6">§6</a><br/>Default Values - <a href="2-dv.html#SP1">§1</a><br/>Enclosures - <a href="4-enc.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP7_4">§7.4</a><br/>Rules - <a href="5-rls.html#SP6">§6</a><br/>Variables - <a href="5-vrb.html#SP6">§6</a>, <a href="5-vrb.html#SP15">§15</a><br/>Kind Constructors - <a href="5-kc.html#SP3">§3</a>, <a href="5-kc.html#SP4">§4</a>, <a href="5-kc.html#SP8">§8</a>, <a href="5-kc.html#SP10">§10</a><br/>Property Permissions - <a href="6-pp.html#SP2">§2</a>, <a href="6-pp.html#SP3">§3</a><br/>Property Values - <a href="6-pv.html#SP2">§2</a>, <a href="6-pv.html#SP2_2_1">§2.2.1</a><br/>Command Grammars - <a href="7-cg.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::tree</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Emit::tree</span></span>:<br/><a href="2-emt.html#SP4">§4</a>, <a href="2-emt.html#SP5">§5</a>, <a href="2-emt.html#SP7">§7</a>, <a href="2-emt.html#SP8">§8</a>, <a href="2-emt.html#SP9">§9</a>, <a href="2-emt.html#SP10">§10</a>, <a href="2-emt.html#SP11">§11</a>, <a href="2-emt.html#SP12">§12</a>, <a href="2-emt.html#SP14">§14</a>, <a href="2-emt.html#SP15">§15</a>, <a href="2-emt.html#SP16">§16</a>, <a href="2-emt.html#SP17">§17</a>, <a href="2-emt.html#SP21">§21</a><br/>Hierarchy - <a href="2-hrr.html#SP1">§1</a>, <a href="2-hrr.html#SP2">§2</a>, <a href="2-hrr.html#SP8">§8</a>, <a href="2-hrr.html#SP9">§9</a>, <a href="2-hrr.html#SP11">§11</a>, <a href="2-hrr.html#SP12">§12</a>, <a href="2-hrr.html#SP13">§13</a>, <a href="2-hrr.html#SP14">§14</a>, <a href="2-hrr.html#SP15">§15</a>, <a href="2-hrr.html#SP16">§16</a>, <a href="2-hrr.html#SP17">§17</a>, <a href="2-hrr.html#SP18">§18</a>, <a href="2-hrr.html#SP19">§19</a>, <a href="2-hrr.html#SP20">§20</a>, <a href="2-hrr.html#SP21">§21</a>, <a href="2-hrr.html#SP22">§22</a><br/>Compilation Units - <a href="2-cu.html#SP2_1">§2.1</a><br/>Emit Code - <a href="2-ec.html#SP2">§2</a>, <a href="2-ec.html#SP3">§3</a>, <a href="2-ec.html#SP4">§4</a>, <a href="2-ec.html#SP5">§5</a>, <a href="2-ec.html#SP7">§7</a>, <a href="2-ec.html#SP9">§9</a>, <a href="2-ec.html#SP11">§11</a>, <a href="2-ec.html#SP12">§12</a>, <a href="2-ec.html#SP13">§13</a>, <a href="2-ec.html#SP14">§14</a>, <a href="2-ec.html#SP15">§15</a>, <a href="2-ec.html#SP16">§16</a><br/>Emit Arrays - <a href="2-ea.html#SP4">§4</a>, <a href="2-ea.html#SP6">§6</a><br/>Default Values - <a href="2-dv.html#SP1">§1</a><br/>Generic Module - <a href="3-gm.html#SP1">§1</a><br/>Enclosures - <a href="4-enc.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP7_4">§7.4</a><br/>Rules - <a href="5-rls.html#SP6">§6</a><br/>Variables - <a href="5-vrb.html#SP6">§6</a>, <a href="5-vrb.html#SP15">§15</a><br/>Kind Constructors - <a href="5-kc.html#SP3">§3</a>, <a href="5-kc.html#SP4">§4</a>, <a href="5-kc.html#SP8">§8</a>, <a href="5-kc.html#SP10">§10</a><br/>Property Permissions - <a href="6-pp.html#SP2">§2</a>, <a href="6-pp.html#SP3">§3</a><br/>Property Values - <a href="6-pv.html#SP2">§2</a>, <a href="6-pv.html#SP2_2_1">§2.2.1</a><br/>Command Grammars - <a href="7-cg.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">main_emission_tree</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
@ -344,23 +344,23 @@ it represents an actual number at run-time, the second if not:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::numeric_constant</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Emit::numeric_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">§23</a><br/>Compilation Units - <a href="2-cu.html#SP2_1_2">§2.1.2</a><br/>The Heap - <a href="2-th.html#SP2">§2</a><br/>Generic Module - <a href="3-gm.html#SP3">§3</a><br/>Completion Module - <a href="3-cm.html#SP1_5">§1.5</a>, <a href="3-cm.html#SP1_6">§1.6</a>, <a href="3-cm.html#SP1_7">§1.7</a>, <a href="3-cm.html#SP1_8">§1.8</a>, <a href="3-cm.html#SP1_11_1">§1.11.1</a><br/>Use Options - <a href="3-uo.html#SP1">§1</a>, <a href="3-uo.html#SP1_2">§1.2</a><br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Activities - <a href="5-act.html#SP7">§7</a><br/>Chronology - <a href="5-chr.html#SP3_3">§3.3</a>, <a href="5-chr.html#SP7_1">§7.1</a><br/>Conjugations - <a href="5-cnj.html#SP12">§12</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">§2.1.1.1.3</a>, <a href="5-tbl.html#SP2_3">§2.3</a><br/>Table Columns - <a href="5-tc.html#SP2">§2</a><br/>Rules - <a href="5-rls.html#SP12_2">§12.2</a><br/>Rulebooks - <a href="5-rlb.html#SP7_2">§7.2</a><br/>Variables - <a href="5-vrb.html#SP14">§14</a><br/>Properties - <a href="5-prp.html#SP7_3">§7.3</a><br/>Relations - <a href="5-rlt.html#SP6">§6</a>, <a href="5-rlt.html#SP11_3">§11.3</a><br/>Kind Constructors - <a href="5-kc.html#SP10">§10</a><br/>Kind IDs - <a href="5-ki.html#SP9_2">§9.2</a><br/>Actions - <a href="5-act2.html#SP8_1">§8.1</a>, <a href="5-act2.html#SP8_3">§8.3</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_6">§1.6</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Command Grammars - <a href="7-cg.html#SP1">§1</a>, <a href="7-cg.html#SP9">§9</a>, <a href="7-cg.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">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::numeric_constant</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Emit::numeric_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">§23</a><br/>Compilation Units - <a href="2-cu.html#SP2_1_2">§2.1.2</a><br/>The Heap - <a href="2-th.html#SP2">§2</a><br/>Completion Module - <a href="3-cm.html#SP1_5">§1.5</a>, <a href="3-cm.html#SP1_6">§1.6</a>, <a href="3-cm.html#SP1_7">§1.7</a>, <a href="3-cm.html#SP1_8">§1.8</a>, <a href="3-cm.html#SP1_11_1">§1.11.1</a><br/>Use Options - <a href="3-uo.html#SP1">§1</a>, <a href="3-uo.html#SP1_2">§1.2</a><br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Activities - <a href="5-act.html#SP7">§7</a><br/>Chronology - <a href="5-chr.html#SP3_3">§3.3</a>, <a href="5-chr.html#SP7_1">§7.1</a><br/>Conjugations - <a href="5-cnj.html#SP12">§12</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">§2.1.1.1.3</a>, <a href="5-tbl.html#SP2_3">§2.3</a><br/>Table Columns - <a href="5-tc.html#SP2">§2</a><br/>Rules - <a href="5-rls.html#SP12_2">§12.2</a><br/>Rulebooks - <a href="5-rlb.html#SP7_2">§7.2</a><br/>Variables - <a href="5-vrb.html#SP14">§14</a><br/>Properties - <a href="5-prp.html#SP7_3">§7.3</a><br/>Relations - <a href="5-rlt.html#SP6">§6</a>, <a href="5-rlt.html#SP11_3">§11.3</a><br/>Kind Constructors - <a href="5-kc.html#SP10">§10</a><br/>Kind IDs - <a href="5-ki.html#SP9_2">§9.2</a><br/>Actions - <a href="5-act2.html#SP8_1">§8.1</a>, <a href="5-act2.html#SP8_3">§8.3</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_6">§1.6</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Command Grammars - <a href="7-cg.html#SP2">§2</a>, <a href="7-cg.html#SP10">§10</a>, <a href="7-cg.html#SP15">§15</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">int_interk</span><span class="plain-syntax">, </span><span class="identifier-syntax">INVALID_IANN</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::named_numeric_constant_hex</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">Emit::named_numeric_constant_hex</span></span>:<br/>Generic Module - <a href="3-gm.html#SP3">§3</a><br/>Relations - <a href="5-rlt.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::named_numeric_constant_hex</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">Emit::named_numeric_constant_hex</span></span>:<br/>Relations - <a href="5-rlt.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">int_interk</span><span class="plain-syntax">, </span><span class="identifier-syntax">HEX_IANN</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::named_unchecked_constant_hex</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Emit::named_unchecked_constant_hex</span></span>:<br/>Generic Module - <a href="3-gm.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::named_unchecked_constant_hex</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">unchecked_interk</span><span class="plain-syntax">, </span><span class="identifier-syntax">HEX_IANN</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::named_numeric_constant_signed</span><button class="popup" onclick="togglePopup('usagePopup21')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup21">Usage of <span class="code-font"><span class="function-syntax">Emit::named_numeric_constant_signed</span></span>:<br/>Generic Module - <a href="3-gm.html#SP3">§3</a><br/>Conjugations - <a href="5-cnj.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::named_numeric_constant_signed</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Emit::named_numeric_constant_signed</span></span>:<br/>Conjugations - <a href="5-cnj.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">int_interk</span><span class="plain-syntax">, </span><span class="identifier-syntax">SIGNED_IANN</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::unchecked_numeric_constant</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">Emit::unchecked_numeric_constant</span></span>:<br/>Actions - <a href="5-act2.html#SP8_2">§8.2</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_3">§1.3</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::unchecked_numeric_constant</span><button class="popup" onclick="togglePopup('usagePopup21')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup21">Usage of <span class="code-font"><span class="function-syntax">Emit::unchecked_numeric_constant</span></span>:<br/>Actions - <a href="5-act2.html#SP8_2">§8.2</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_3">§1.3</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">unchecked_interk</span><span class="plain-syntax">, </span><span class="identifier-syntax">INVALID_IANN</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
@ -379,7 +379,7 @@ it represents an actual number at run-time, the second if not:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::text_constant</span><button class="popup" onclick="togglePopup('usagePopup23')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup23">Usage of <span class="code-font"><span class="function-syntax">Emit::text_constant</span></span>:<br/><a href="2-emt.html#SP13">§13</a><br/>Hierarchy - <a href="2-hrr.html#SP23">§23</a><br/>Completion Module - <a href="3-cm.html#SP1_1">§1.1</a>, <a href="3-cm.html#SP1_2">§1.2</a>, <a href="3-cm.html#SP1_3">§1.3</a>, <a href="3-cm.html#SP1_4">§1.4</a><br/>Text Literals - <a href="4-tl.html#SP4">§4</a><br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Rulebooks - <a href="5-rlb.html#SP14_2">§14.2</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_1">§1.1</a>, <a href="6-bd.html#SP1_2">§1.2</a>, <a href="6-bd.html#SP1_3">§1.3</a>, <a href="6-bd.html#SP1_5">§1.5</a>, <a href="6-bd.html#SP1_6">§1.6</a>, <a href="6-bd.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">contents</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::text_constant</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">Emit::text_constant</span></span>:<br/><a href="2-emt.html#SP13">§13</a><br/>Hierarchy - <a href="2-hrr.html#SP23">§23</a><br/>Completion Module - <a href="3-cm.html#SP1_1">§1.1</a>, <a href="3-cm.html#SP1_2">§1.2</a>, <a href="3-cm.html#SP1_3">§1.3</a>, <a href="3-cm.html#SP1_4">§1.4</a><br/>Text Literals - <a href="4-tl.html#SP4">§4</a><br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Rulebooks - <a href="5-rlb.html#SP14_2">§14.2</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_1">§1.1</a>, <a href="6-bd.html#SP1_2">§1.2</a>, <a href="6-bd.html#SP1_3">§1.3</a>, <a href="6-bd.html#SP1_5">§1.5</a>, <a href="6-bd.html#SP1_6">§1.6</a>, <a href="6-bd.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">contents</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">ID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Warehouse::create_text</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::warehouse</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::package</span></a><span class="plain-syntax">());</span>
|
||||
|
@ -394,7 +394,7 @@ it represents an actual number at run-time, the second if not:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::iname_constant</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">Emit::iname_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">§23</a><br/>Instance Counting - <a href="2-ic.html#SP8">§8</a><br/>Short Names - <a href="2-sn.html#SP2">§2</a><br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Activities - <a href="5-act.html#SP7">§7</a><br/>Chronology - <a href="5-chr.html#SP4">§4</a>, <a href="5-chr.html#SP8">§8</a><br/>Conjugations - <a href="5-cnj.html#SP12">§12</a><br/>Scene Instances - <a href="5-si.html#SP3">§3</a>, <a href="5-si.html#SP7">§7</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">§2.1.1.1.3</a><br/>Rulebooks - <a href="5-rlb.html#SP7_4">§7.4</a>, <a href="5-rlb.html#SP14_3">§14.3</a><br/>Relations - <a href="5-rlt.html#SP5">§5</a>, <a href="5-rlt.html#SP6">§6</a>, <a href="5-rlt.html#SP7_2">§7.2</a><br/>Kind Constructors - <a href="5-kc.html#SP4">§4</a><br/>Kind IDs - <a href="5-ki.html#SP6">§6</a>, <a href="5-ki.html#SP9_2">§9.2</a><br/>Actions - <a href="5-act2.html#SP8_3">§8.3</a>, <a href="5-act2.html#SP8_4">§8.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_iname</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::iname_constant</span><button class="popup" onclick="togglePopup('usagePopup23')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup23">Usage of <span class="code-font"><span class="function-syntax">Emit::iname_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">§23</a><br/>Instance Counting - <a href="2-ic.html#SP8">§8</a><br/>Short Names - <a href="2-sn.html#SP2">§2</a><br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Activities - <a href="5-act.html#SP7">§7</a><br/>Chronology - <a href="5-chr.html#SP4">§4</a>, <a href="5-chr.html#SP8">§8</a><br/>Conjugations - <a href="5-cnj.html#SP12">§12</a><br/>Scene Instances - <a href="5-si.html#SP3">§3</a>, <a href="5-si.html#SP7">§7</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">§2.1.1.1.3</a><br/>Rulebooks - <a href="5-rlb.html#SP7_4">§7.4</a>, <a href="5-rlb.html#SP14_3">§14.3</a><br/>Relations - <a href="5-rlt.html#SP5">§5</a>, <a href="5-rlt.html#SP6">§6</a>, <a href="5-rlt.html#SP7_2">§7.2</a><br/>Kind Constructors - <a href="5-kc.html#SP4">§4</a><br/>Kind IDs - <a href="5-ki.html#SP6">§6</a>, <a href="5-ki.html#SP9_2">§9.2</a><br/>Actions - <a href="5-act2.html#SP8_3">§8.3</a>, <a href="5-act2.html#SP8_4">§8.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_iname</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::define_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::kind_to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
|
@ -418,14 +418,14 @@ is compiled.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::text_constant_from_wide_string</span><button class="popup" onclick="togglePopup('usagePopup25')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup25">Usage of <span class="code-font"><span class="function-syntax">Emit::text_constant_from_wide_string</span></span>:<br/>Bibliographic Data - <a href="6-bd.html#SP1_1">§1.1</a>, <a href="6-bd.html#SP1_2">§1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">str</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::text_constant_from_wide_string</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">Emit::text_constant_from_wide_string</span></span>:<br/>Bibliographic Data - <a href="6-bd.html#SP1_1">§1.1</a>, <a href="6-bd.html#SP1_2">§1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">str</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_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_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="4-tl.html#SP4" class="function-link"><span class="function-syntax">TextLiterals::to_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Feeds::feed_C_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">str</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::to_value_pair_in_context</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v2</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP14" class="function-link"><span class="function-syntax">Emit::named_generic_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">v1</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::serial_number</span><button class="popup" onclick="togglePopup('usagePopup26')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup26">Usage of <span class="code-font"><span class="function-syntax">Emit::serial_number</span></span>:<br/>Bibliographic Data - <a href="6-bd.html#SP1_5">§1.5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">serial</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::serial_number</span><button class="popup" onclick="togglePopup('usagePopup25')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup25">Usage of <span class="code-font"><span class="function-syntax">Emit::serial_number</span></span>:<br/>Bibliographic Data - <a href="6-bd.html#SP1_5">§1.5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">serial</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">v1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::text_value</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), &</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v2</span><span class="plain-syntax">, </span><span class="identifier-syntax">serial</span><span class="plain-syntax">);</span>
|
||||
|
@ -438,13 +438,13 @@ of a "variable" and define it as a constant:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::initial_value_as_constant</span><button class="popup" onclick="togglePopup('usagePopup27')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup27">Usage of <span class="code-font"><span class="function-syntax">Emit::initial_value_as_constant</span></span>:<br/>Variables - <a href="5-vrb.html#SP14">§14</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_1">§1.1</a>, <a href="6-bd.html#SP1_2">§1.2</a>, <a href="6-bd.html#SP1_3">§1.3</a>, <a href="6-bd.html#SP1_4">§1.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::initial_value_as_constant</span><button class="popup" onclick="togglePopup('usagePopup26')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup26">Usage of <span class="code-font"><span class="function-syntax">Emit::initial_value_as_constant</span></span>:<br/>Variables - <a href="5-vrb.html#SP14">§14</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_1">§1.1</a>, <a href="6-bd.html#SP1_2">§1.2</a>, <a href="6-bd.html#SP1_3">§1.3</a>, <a href="6-bd.html#SP1_4">§1.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><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><a href="5-vrb.html#SP15" class="function-link"><span class="function-syntax">RTVariables::initial_value_as_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v2</span><span class="plain-syntax">, </span><span class="identifier-syntax">var</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP14" class="function-link"><span class="function-syntax">Emit::named_generic_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">v1</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::initial_value_as_raw_text</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">Emit::initial_value_as_raw_text</span></span>:<br/>Bibliographic Data - <a href="6-bd.html#SP1_1">§1.1</a>, <a href="6-bd.html#SP1_2">§1.2</a>, <a href="6-bd.html#SP1_3">§1.3</a>, <a href="6-bd.html#SP1_6">§1.6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::initial_value_as_raw_text</span><button class="popup" onclick="togglePopup('usagePopup27')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup27">Usage of <span class="code-font"><span class="function-syntax">Emit::initial_value_as_raw_text</span></span>:<br/>Bibliographic Data - <a href="6-bd.html#SP1_1">§1.1</a>, <a href="6-bd.html#SP1_2">§1.2</a>, <a href="6-bd.html#SP1_3">§1.3</a>, <a href="6-bd.html#SP1_6">§1.6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NonlocalVariables::initial_value_as_plain_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">var</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">CONTENT</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BibliographicData::compile_bibliographic_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">CONTENT</span><span class="plain-syntax">,</span>
|
||||
|
@ -457,7 +457,7 @@ of a "variable" and define it as a constant:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::named_generic_constant</span><button class="popup" onclick="togglePopup('usagePopup29')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup29">Usage of <span class="code-font"><span class="function-syntax">Emit::named_generic_constant</span></span>:<br/><a href="2-emt.html#SP12">§12</a>, <a href="2-emt.html#SP13">§13</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::named_generic_constant</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">Emit::named_generic_constant</span></span>:<br/><a href="2-emt.html#SP12">§12</a>, <a href="2-emt.html#SP13">§13</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">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">con_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::define_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Constant::new_numerical</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><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">con_s</span><span class="plain-syntax">),</span>
|
||||
|
@ -468,7 +468,7 @@ of a "variable" and define it as a constant:
|
|||
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>§15. Instances. </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">Emit::instance</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::instance</span></span>:<br/>Instances - <a href="5-ins.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inst_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">v</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::instance</span><button class="popup" onclick="togglePopup('usagePopup29')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup29">Usage of <span class="code-font"><span class="function-syntax">Emit::instance</span></span>:<br/>Instances - <a href="5-ins.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inst_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">v</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">inst_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inst_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::define_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">inst_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::kind_to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
|
@ -483,7 +483,7 @@ of a "variable" and define it as a constant:
|
|||
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. Variables. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::variable</span><button class="popup" onclick="togglePopup('usagePopup31')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup31">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="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">Produce::define_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">var_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::kind_to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
|
@ -496,7 +496,7 @@ of a "variable" and define it as a constant:
|
|||
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>§17. Properties and permissions. </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">Emit::property</span><button class="popup" onclick="togglePopup('usagePopup32')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup32">Usage of <span class="code-font"><span class="function-syntax">Emit::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="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">Produce::define_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::kind_to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
|
@ -506,7 +506,7 @@ of a "variable" and define it as a constant:
|
|||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">ppi7_counter</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::permission</span><button class="popup" onclick="togglePopup('usagePopup33')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup33">Usage of <span class="code-font"><span class="function-syntax">Emit::permission</span></span>:<br/>Property Permissions - <a href="6-pp.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_name</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::permission</span><button class="popup" onclick="togglePopup('usagePopup32')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup32">Usage of <span class="code-font"><span class="function-syntax">Emit::permission</span></span>:<br/>Property Permissions - <a href="6-pp.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_name</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">storage_iname</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop_iname</span><span class="plain-syntax"> = </span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">store_s</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">storage_iname</span><span class="plain-syntax">)?</span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">storage_iname</span><span class="plain-syntax">):</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -526,7 +526,7 @@ of a "variable" and define it as a constant:
|
|||
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>§18. Property values. </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">Emit::propertyvalue</span><button class="popup" onclick="togglePopup('usagePopup34')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup34">Usage of <span class="code-font"><span class="function-syntax">Emit::propertyvalue</span></span>:<br/>Property Values - <a href="6-pv.html#SP2_2_1">§2.2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::propertyvalue</span><button class="popup" onclick="togglePopup('usagePopup33')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup33">Usage of <span class="code-font"><span class="function-syntax">Emit::propertyvalue</span></span>:<br/>Property Values - <a href="6-pv.html#SP2_2_1">§2.2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">owner</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::PropertyValue::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>
|
||||
|
@ -555,7 +555,7 @@ assimilating during linking.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::intervention</span><button class="popup" onclick="togglePopup('usagePopup35')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup35">Usage of <span class="code-font"><span class="function-syntax">Emit::intervention</span></span>:<br/>Interventions - <a href="2-int.html#SP1">§1</a>, <a href="2-int.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">segment</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">part</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::intervention</span><button class="popup" onclick="togglePopup('usagePopup34')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup34">Usage of <span class="code-font"><span class="function-syntax">Emit::intervention</span></span>:<br/>Interventions - <a href="2-int.html#SP1">§1</a>, <a href="2-int.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">segment</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">part</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">i6</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">seg</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_warehouse</span><span class="plain-syntax"> *</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax"> = </span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::warehouse</span></a><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">ID1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Warehouse::create_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">warehouse</span><span class="plain-syntax">, </span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::package</span></a><span class="plain-syntax">());</span>
|
||||
|
@ -583,7 +583,7 @@ assimilating during linking.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::append</span><button class="popup" onclick="togglePopup('usagePopup36')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup36">Usage of <span class="code-font"><span class="function-syntax">Emit::append</span></span>:<br/>Interventions - <a href="2-int.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::append</span><button class="popup" onclick="togglePopup('usagePopup35')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup35">Usage of <span class="code-font"><span class="function-syntax">Emit::append</span></span>:<br/>Interventions - <a href="2-int.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Append '%S'\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">symbol</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -159,7 +159,7 @@ variables needed inside GPRs, which tend to be large, wrangly functions:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> </span><span class="function-syntax">GPRs::new_kit</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">GPRs::new_kit</span></span>:<br/>Literal Patterns - <a href="5-lp.html#SP4_2">§4.2</a><br/>Command Grammars - <a href="7-cg.html#SP8">§8</a>, <a href="7-cg.html#SP10">§10</a>, <a href="7-cg.html#SP11">§11</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP13">§13</a><br/>Kind GPRs - <a href="7-kg.html#SP1">§1</a>, <a href="7-kg.html#SP2">§2</a>, <a href="7-kg.html#SP3">§3</a>, <a href="7-kg.html#SP4">§4</a>, <a href="7-kg.html#SP5_1">§5.1</a>, <a href="7-kg.html#SP5_2">§5.2</a><br/>Parse Name Properties - <a href="7-pnp.html#SP2">§2</a>, <a href="7-pnp.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> </span><span class="function-syntax">GPRs::new_kit</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">GPRs::new_kit</span></span>:<br/>Literal Patterns - <a href="5-lp.html#SP4_2">§4.2</a><br/>Command Grammars - <a href="7-cg.html#SP9">§9</a>, <a href="7-cg.html#SP11">§11</a>, <a href="7-cg.html#SP12">§12</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP13">§13</a><br/>Kind GPRs - <a href="7-kg.html#SP1">§1</a>, <a href="7-kg.html#SP2">§2</a>, <a href="7-kg.html#SP3">§3</a>, <a href="7-kg.html#SP4">§4</a>, <a href="7-kg.html#SP5_1">§5.1</a>, <a href="7-kg.html#SP5_2">§5.2</a><br/>Parse Name Properties - <a href="7-pnp.html#SP2">§2</a>, <a href="7-pnp.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax">.</span><span class="element-syntax">cur_addr_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">kit</span><span class="plain-syntax">.</span><span class="element-syntax">cur_len_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -202,7 +202,7 @@ following convenience functions.
|
|||
</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">GPRs::add_standard_vars</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">GPRs::add_standard_vars</span></span>:<br/>Literal Patterns - <a href="5-lp.html#SP4_2">§4.2</a><br/>Command Grammars - <a href="7-cg.html#SP8">§8</a>, <a href="7-cg.html#SP10">§10</a>, <a href="7-cg.html#SP11">§11</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP13">§13</a><br/>Kind GPRs - <a href="7-kg.html#SP4">§4</a>, <a href="7-kg.html#SP5_1">§5.1</a>, <a href="7-kg.html#SP5_2">§5.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">GPRs::add_standard_vars</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">GPRs::add_standard_vars</span></span>:<br/>Literal Patterns - <a href="5-lp.html#SP4_2">§4.2</a><br/>Command Grammars - <a href="7-cg.html#SP9">§9</a>, <a href="7-cg.html#SP11">§11</a>, <a href="7-cg.html#SP12">§12</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP13">§13</a><br/>Kind GPRs - <a href="7-kg.html#SP4">§4</a>, <a href="7-kg.html#SP5_1">§5.1</a>, <a href="7-kg.html#SP5_2">§5.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax">-></span><span class="element-syntax">group_wn_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_internal_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"group_wn"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax">-></span><span class="element-syntax">v_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_internal_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"v"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax">-></span><span class="element-syntax">w_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_internal_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"w"</span><span class="plain-syntax">);</span>
|
||||
|
@ -214,14 +214,14 @@ following convenience functions.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax">-></span><span class="element-syntax">instance_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_other_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"instance"</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">GPRs::add_range_vars</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">GPRs::add_range_vars</span></span>:<br/>Command Grammars - <a href="7-cg.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">GPRs::add_range_vars</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">GPRs::add_range_vars</span></span>:<br/>Command Grammars - <a href="7-cg.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax">-></span><span class="element-syntax">range_from_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_internal_commented_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"range_from"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"call parameter: word number of snippet start"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax">-></span><span class="element-syntax">range_words_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_internal_commented_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"range_words"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"call parameter: snippet length"</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">GPRs::add_original_var</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">GPRs::add_original_var</span></span>:<br/>Literal Patterns - <a href="5-lp.html#SP4_2">§4.2</a><br/>Command Grammars - <a href="7-cg.html#SP8">§8</a>, <a href="7-cg.html#SP10">§10</a>, <a href="7-cg.html#SP11">§11</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP13">§13</a><br/>Kind GPRs - <a href="7-kg.html#SP1">§1</a>, <a href="7-kg.html#SP2">§2</a>, <a href="7-kg.html#SP3">§3</a>, <a href="7-kg.html#SP4">§4</a>, <a href="7-kg.html#SP5_1">§5.1</a>, <a href="7-kg.html#SP5_2">§5.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">GPRs::add_original_var</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">GPRs::add_original_var</span></span>:<br/>Literal Patterns - <a href="5-lp.html#SP4_2">§4.2</a><br/>Command Grammars - <a href="7-cg.html#SP9">§9</a>, <a href="7-cg.html#SP11">§11</a>, <a href="7-cg.html#SP12">§12</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP13">§13</a><br/>Kind GPRs - <a href="7-kg.html#SP1">§1</a>, <a href="7-kg.html#SP2">§2</a>, <a href="7-kg.html#SP3">§3</a>, <a href="7-kg.html#SP4">§4</a>, <a href="7-kg.html#SP5_1">§5.1</a>, <a href="7-kg.html#SP5_2">§5.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax">-></span><span class="element-syntax">original_wn_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_internal_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"original_wn"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -12,14 +12,6 @@
|
|||
<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>
|
||||
|
@ -71,108 +63,23 @@ function togglePopup(material_id) {
|
|||
<!--Weave of 'Generic Module' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#3">Chapter 3: Basics</a></li><li><b>Generic Module</b></li></ul></div>
|
||||
<p class="purpose">Inter constants for, say, extremal number values, which depend only on the target we are compiling to, and are generally low-level in nature.</p>
|
||||
<p class="purpose">A variety of Inter constants which do not depend on the content of the program.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">GenericModule::compile</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP4" class="function-link"><span class="function-syntax">Emit::rudimentary_kinds</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP2" class="function-link"><span class="function-syntax">GenericModule::compile_basic_constants</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="identifier-syntax">VM</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Task::vm</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">VM</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">"target VM not set yet"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Site::make_architectural_definitions</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TargetVMs::get_architecture</span><span class="plain-syntax">(</span><span class="identifier-syntax">VM</span><span class="plain-syntax">), </span><span class="identifier-syntax">unchecked_interk</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-cnj.html#SP1" class="function-link"><span class="function-syntax">RTVerbs::compile_generic_constants</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP1" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_generic_constants</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="6-tp.html#SP1" class="function-link"><span class="function-syntax">RTPlayer::compile_generic_constants</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="5-rlt.html#SP1" class="function-link"><span class="function-syntax">RTRelations::compile_generic_constants</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>The generic module depends on the VM, but on nothing else.
|
||||
</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">GenericModule::compile_basic_constants</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">GenericModule::compile_basic_constants</span></span>:<br/><a href="3-gm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="identifier-syntax">VM</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Task::vm</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">VM</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">"target VM not set yet"</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TargetVMs::debug_enabled</span><span class="plain-syntax">(</span><span class="identifier-syntax">VM</span><span class="plain-syntax">)) </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_one</span></a><span class="plain-syntax">(</span><span class="constant-syntax">DEBUG_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TargetVMs::is_16_bit</span><span class="plain-syntax">(</span><span class="identifier-syntax">VM</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="3-gm.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">16-bit constants</span><span class="named-paragraph-number">2.1</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-gm.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">32-bit constants</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2_1" class="paragraph-anchor"></a><b>§2.1. </b>These constants mostly have obvious meanings, but a few notes:
|
||||
</p>
|
||||
|
||||
<ul class="items"><li>(1) <span class="extract"><span class="extract-syntax">NULL</span></span>, in our runtime, is -1, and not 0 as it would be in C. This is
|
||||
emitted as "unchecked" to avoid the value being rejected as being too large,
|
||||
as it would be if it were viewed as a signed rather than unsigned integer.
|
||||
</li><li>(2) <span class="extract"><span class="extract-syntax">IMPROBABLE_VALUE</span></span> is one which is unlikely even if possible to be a
|
||||
genuine I7 value. The efficiency of runtime code handling tables depends on
|
||||
how well chosen this is: it would ran badly if we chose 1, for instance.
|
||||
</li><li>(3) <span class="extract"><span class="extract-syntax">REPARSE_CODE</span></span> is a magic value used in <a href="../CommandParserKit/index.html" class="internal">CommandParserKit</a> to
|
||||
signal that some code which ought to have been parsing a command has in
|
||||
fact rewritten it, so that the whole command must be re-parsed afresh.
|
||||
That doesn't sound very "fundamental", but in fact it depends on the word
|
||||
size, because it needs to be a large number but also such that an address
|
||||
in the VM can be added to it without it becoming negative.
|
||||
</li></ul>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">16-bit constants</span><span class="named-paragraph-number">2.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_one</span></a><span class="plain-syntax">(</span><span class="constant-syntax">WORDSIZE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_unchecked_hex</span></a><span class="plain-syntax">(</span><span class="constant-syntax">NULL_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">0xffff</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_hex</span></a><span class="plain-syntax">(</span><span class="constant-syntax">WORD_HIGHBIT_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">0x8000</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_hex</span></a><span class="plain-syntax">(</span><span class="constant-syntax">WORD_NEXTTOHIGHBIT_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">0x4000</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_hex</span></a><span class="plain-syntax">(</span><span class="constant-syntax">IMPROBABLE_VALUE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">0x7fe3</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_hex</span></a><span class="plain-syntax">(</span><span class="constant-syntax">REPARSE_CODE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">10000</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_one</span></a><span class="plain-syntax">(</span><span class="constant-syntax">MAX_POSITIVE_NUMBER_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">32767</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_signed</span></a><span class="plain-syntax">(</span><span class="constant-syntax">MIN_NEGATIVE_NUMBER_HL</span><span class="plain-syntax">, -32768);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_one</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TARGET_ZCODE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_one</span></a><span class="plain-syntax">(</span><span class="constant-syntax">DICT_WORD_SIZE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">6</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-gm.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_2" class="paragraph-anchor"></a><b>§2.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">32-bit constants</span><span class="named-paragraph-number">2.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_one</span></a><span class="plain-syntax">(</span><span class="constant-syntax">WORDSIZE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_unchecked_hex</span></a><span class="plain-syntax">(</span><span class="constant-syntax">NULL_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">0xffffffff</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_hex</span></a><span class="plain-syntax">(</span><span class="constant-syntax">WORD_HIGHBIT_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">0x80000000</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_hex</span></a><span class="plain-syntax">(</span><span class="constant-syntax">WORD_NEXTTOHIGHBIT_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">0x40000000</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_hex</span></a><span class="plain-syntax">(</span><span class="constant-syntax">IMPROBABLE_VALUE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">0xdeadce11</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_hex</span></a><span class="plain-syntax">(</span><span class="constant-syntax">REPARSE_CODE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">0x40000000</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_one</span></a><span class="plain-syntax">(</span><span class="constant-syntax">MAX_POSITIVE_NUMBER_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">2147483647</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_signed</span></a><span class="plain-syntax">(</span><span class="constant-syntax">MIN_NEGATIVE_NUMBER_HL</span><span class="plain-syntax">, -2147483648);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_one</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TARGET_GLULX_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_one</span></a><span class="plain-syntax">(</span><span class="constant-syntax">DICT_WORD_SIZE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">9</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-gm.html#SP3" class="function-link"><span class="function-syntax">GenericModule::emit_one</span></a><span class="plain-syntax">(</span><span class="constant-syntax">INDIV_PROP_START_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-gm.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>Note that all of these constants are made available for linking:
|
||||
</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">GenericModule::emit_one</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">GenericModule::emit_one</span></span>:<br/><a href="3-gm.html#SP2">§2</a>, <a href="3-gm.html#SP2_1">§2.1</a>, <a href="3-gm.html#SP2_2">§2.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">GenericModule::emit_signed</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">GenericModule::emit_signed</span></span>:<br/><a href="3-gm.html#SP2_1">§2.1</a>, <a href="3-gm.html#SP2_2">§2.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::named_numeric_constant_signed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">GenericModule::emit_hex</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">GenericModule::emit_hex</span></span>:<br/><a href="3-gm.html#SP2_1">§2.1</a>, <a href="3-gm.html#SP2_2">§2.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::named_numeric_constant_hex</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">GenericModule::emit_unchecked_hex</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">GenericModule::emit_unchecked_hex</span></span>:<br/><a href="3-gm.html#SP2_1">§2.1</a>, <a href="3-gm.html#SP2_2">§2.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::named_unchecked_constant_hex</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-ie.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">gm</li><li class="progresssection"><a href="3-cm.html">cm</a></li><li class="progresssection"><a href="3-uo.html">uo</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="3-cm.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
|
|
@ -114,7 +114,7 @@ function togglePopup(material_id) {
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">RTActions::package</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">RTActions::package</span></span>:<br/><a href="5-act2.html#SP3">§3</a>, <a href="5-act2.html#SP4">§4</a>, <a href="5-act2.html#SP6">§6</a>, <a href="5-act2.html#SP7">§7</a>, <a href="5-act2.html#SP8">§8</a><br/>Command Grammars - <a href="7-cg.html#SP14">§14</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">action_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">RTActions::package</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">RTActions::package</span></span>:<br/><a href="5-act2.html#SP3">§3</a>, <a href="5-act2.html#SP4">§4</a>, <a href="5-act2.html#SP6">§6</a>, <a href="5-act2.html#SP7">§7</a>, <a href="5-act2.html#SP8">§8</a><br/>Command Grammars - <a href="7-cg.html#SP15">§15</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">action_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">an</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">an_package</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">an</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">an_package</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP19" class="function-link"><span class="function-syntax">Hierarchy::local_package_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ACTIONS_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">an</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">where_created</span><span class="plain-syntax">);</span>
|
||||
|
@ -185,7 +185,7 @@ early Inform history. It's harmless enough, though.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTActions::double_sharp</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">RTActions::double_sharp</span></span>:<br/><a href="5-act2.html#SP8_2">§8.2</a>, <a href="5-act2.html#SP8_3">§8.3</a><br/>Default Values - <a href="2-dv.html#SP2_7">§2.7</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Chronology - <a href="5-chr.html#SP5">§5</a><br/>Rulebooks - <a href="5-rlb.html#SP7_1">§7.1</a>, <a href="5-rlb.html#SP7_4_1_2">§7.4.1.2</a><br/>Command Grammars - <a href="7-cg.html#SP14">§14</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_4">§6.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">action_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTActions::double_sharp</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">RTActions::double_sharp</span></span>:<br/><a href="5-act2.html#SP8_2">§8.2</a>, <a href="5-act2.html#SP8_3">§8.3</a><br/>Default Values - <a href="2-dv.html#SP2_7">§2.7</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Chronology - <a href="5-chr.html#SP5">§5</a><br/>Rulebooks - <a href="5-rlb.html#SP7_1">§7.1</a>, <a href="5-rlb.html#SP7_4_1_2">§7.4.1.2</a><br/>Command Grammars - <a href="7-cg.html#SP15">§15</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_4">§6.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">action_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">an</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">an_double_sharp_iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">an</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">an_double_sharp_iname</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP15" class="function-link"><span class="function-syntax">Hierarchy::derive_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">DOUBLE_SHARP_NAME_HL</span><span class="plain-syntax">,</span>
|
||||
|
|
|
@ -73,28 +73,42 @@ function togglePopup(material_id) {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#7">Chapter 7: Command Grammar</a></li><li><b>Command Grammars</b></li></ul></div>
|
||||
<p class="purpose">Runtime support for CGs.</p>
|
||||
|
||||
<ul class="toc"><li><a href="7-cg.html#SP1">§1. Generic constants</a></li><li><a href="7-cg.html#SP2">§2. Compilation data</a></li><li><a href="7-cg.html#SP7">§7. Queued compilation</a></li><li><a href="7-cg.html#SP8">§8. Compiling CG_IS_TOKEN grammars</a></li><li><a href="7-cg.html#SP9">§9. Compiling CG_IS_COMMAND grammars</a></li><li><a href="7-cg.html#SP10">§10. Compiling CG_IS_CONSULT grammars</a></li><li><a href="7-cg.html#SP11">§11. Compiling CG_IS_PROPERTY grammars</a></li><li><a href="7-cg.html#SP12">§12. Compiling CG_IS_VALUE grammars</a></li><li><a href="7-cg.html#SP13">§13. Compiling CG_IS_SUBJECT grammars</a></li><li><a href="7-cg.html#SP14">§14. Compiling all grammars</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="7-cg.html#SP1">§1. Generic constants</a></li><li><a href="7-cg.html#SP3">§3. Compilation data</a></li><li><a href="7-cg.html#SP8">§8. Queued compilation</a></li><li><a href="7-cg.html#SP9">§9. Compiling CG_IS_TOKEN grammars</a></li><li><a href="7-cg.html#SP10">§10. Compiling CG_IS_COMMAND grammars</a></li><li><a href="7-cg.html#SP11">§11. Compiling CG_IS_CONSULT grammars</a></li><li><a href="7-cg.html#SP12">§12. Compiling CG_IS_PROPERTY grammars</a></li><li><a href="7-cg.html#SP13">§13. Compiling CG_IS_VALUE grammars</a></li><li><a href="7-cg.html#SP14">§14. Compiling CG_IS_SUBJECT grammars</a></li><li><a href="7-cg.html#SP15">§15. Compiling all grammars</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Generic constants. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Generic constants. </b>Here, <span class="extract"><span class="extract-syntax">REPARSE_CODE</span></span> is a magic value used in <a href="../CommandParserKit/index.html" class="internal">CommandParserKit</a> to
|
||||
signal that some code which ought to have been parsing a command has in
|
||||
fact rewritten it, so that the whole command must be re-parsed afresh.
|
||||
</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">RTCommandGrammars::compile_generic_constants</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTCommandGrammars::compile_generic_constants</span></span>:<br/>Generic Module - <a href="3-gm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP1" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_REVERSE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP1" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_SLASH_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP1" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_DIVIDER_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP1" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_RESULT_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP1" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_SPECIAL_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP1" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_NUMBER_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP1" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_NOUN_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">5</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP1" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_MULTI_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">6</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP1" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_MULTIINSIDE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">7</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP1" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_MULTIHELD_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">8</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP1" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_HELD_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">9</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP1" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_CREATURE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">10</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP1" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_TOPIC_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">11</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP1" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_MULTIEXCEPT_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">12</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="identifier-syntax">VM</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Task::vm</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TargetVMs::is_16_bit</span><span class="plain-syntax">(</span><span class="identifier-syntax">VM</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">REPARSE_CODE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">10000</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">DICT_WORD_SIZE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">6</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">REPARSE_CODE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">0x40000000</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">DICT_WORD_SIZE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">9</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_REVERSE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_SLASH_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_DIVIDER_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_RESULT_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_SPECIAL_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_NUMBER_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_NOUN_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">5</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_MULTI_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">6</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_MULTIINSIDE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">7</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_MULTIHELD_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">8</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_HELD_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">9</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_CREATURE_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">10</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_TOPIC_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">11</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_MULTIEXCEPT_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">12</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTCommandGrammars::iname_for_I6_parser_token</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">RTCommandGrammars::iname_for_I6_parser_token</span></span>:<br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_3">§1.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">cg_token</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgt</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">cgt</span><span class="plain-syntax">-></span><span class="identifier-syntax">grammar_token_code</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">NOUN_TOKEN_GTC:</span><span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_NOUN_HL</span><span class="plain-syntax">);</span>
|
||||
|
@ -110,14 +124,14 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> to prevent a compiler error: never reached</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTCommandGrammars::grammar_constant</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTCommandGrammars::grammar_constant</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RTCommandGrammars::grammar_constant</span></span>:<br/><a href="7-cg.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">V</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. Compilation data. </b>Each <span class="extract"><span class="extract-syntax">command_grammar</span></span> object contains this data:
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. Compilation data. </b>Each <span class="extract"><span class="extract-syntax">command_grammar</span></span> object contains this data:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -143,39 +157,39 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure cg_compilation_data is private to this section.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>In fact, however, only four of the six CG types live in their own packages,
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>In fact, however, only four of the six CG types live in their own packages,
|
||||
so the following is not used for <span class="extract"><span class="extract-syntax">CG_IS_VALUE</span></span> or <span class="extract"><span class="extract-syntax">CG_IS_SUBJECT</span></span> grammars.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">RTCommandGrammars::package</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RTCommandGrammars::package</span></span>:<br/><a href="7-cg.html#SP4">§4</a>, <a href="7-cg.html#SP5">§5</a>, <a href="7-cg.html#SP6">§6</a>, <a href="7-cg.html#SP14">§14</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">RTCommandGrammars::package</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">RTCommandGrammars::package</span></span>:<br/><a href="7-cg.html#SP5">§5</a>, <a href="7-cg.html#SP6">§6</a>, <a href="7-cg.html#SP7">§7</a>, <a href="7-cg.html#SP15">§15</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">cg_package</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">cg_package</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP20" class="function-link"><span class="function-syntax">Hierarchy::completion_package</span></a><span class="plain-syntax">(</span><span class="constant-syntax">COMMAND_GRAMMARS_HAP</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">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">cg_package</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b><span class="extract"><span class="extract-syntax">CG_IS_PROPERTY_NAME</span></span> packages contain a function to match the value of
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b><span class="extract"><span class="extract-syntax">CG_IS_PROPERTY_NAME</span></span> packages contain a function to match the value of
|
||||
that property:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTCommandGrammars::get_property_GPR_fn_iname</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">RTCommandGrammars::get_property_GPR_fn_iname</span></span>:<br/><a href="7-cg.html#SP11">§11</a><br/>Parse Name Properties - <a href="7-pnp.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTCommandGrammars::get_property_GPR_fn_iname</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">RTCommandGrammars::get_property_GPR_fn_iname</span></span>:<br/><a href="7-cg.html#SP12">§12</a><br/>Parse Name Properties - <a href="7-pnp.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">cg</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">cg_is</span><span class="plain-syntax"> != </span><span class="identifier-syntax">CG_IS_PROPERTY_NAME</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">"prn_iname unavailable"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">property_GPR_fn_iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">property_GPR_fn_iname</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PROPERTY_GPR_FN_HL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP3" class="function-link"><span class="function-syntax">RTCommandGrammars::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP4" class="function-link"><span class="function-syntax">RTCommandGrammars::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</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">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">property_GPR_fn_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b><span class="extract"><span class="extract-syntax">CG_IS_TOKEN</span></span> packages contain a function to match that token. Note that these
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b><span class="extract"><span class="extract-syntax">CG_IS_TOKEN</span></span> packages contain a function to match that token. Note that these
|
||||
can be translated in order to have a particular identifier.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTCommandGrammars::get_cg_token_iname</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">RTCommandGrammars::get_cg_token_iname</span></span>:<br/><a href="7-cg.html#SP8">§8</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_5">§1.5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTCommandGrammars::get_cg_token_iname</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">RTCommandGrammars::get_cg_token_iname</span></span>:<br/><a href="7-cg.html#SP9">§9</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_5">§1.5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">cg</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">cg_is</span><span class="plain-syntax"> != </span><span class="identifier-syntax">CG_IS_TOKEN</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">"cg_token_iname unavailable"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">cg_token_iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
|
@ -186,7 +200,7 @@ can be translated in order to have a particular identifier.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="identifier-syntax">cg_token_iname</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PARSE_LINE_FN_HL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP3" class="function-link"><span class="function-syntax">RTCommandGrammars::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP4" class="function-link"><span class="function-syntax">RTCommandGrammars::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</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">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">cg_token_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -196,20 +210,20 @@ can be translated in order to have a particular identifier.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">CG_IS_TOKEN_identifier</span><span class="plain-syntax">, </span><span class="string-syntax">"%N"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b><span class="extract"><span class="extract-syntax">CG_IS_CONSULT</span></span> packages contain a function which matches a snippet:
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b><span class="extract"><span class="extract-syntax">CG_IS_CONSULT</span></span> packages contain a function which matches a snippet:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTCommandGrammars::get_consult_fn_iname</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">RTCommandGrammars::get_consult_fn_iname</span></span>:<br/><a href="7-cg.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTCommandGrammars::get_consult_fn_iname</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">RTCommandGrammars::get_consult_fn_iname</span></span>:<br/><a href="7-cg.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">cg</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">cg_is</span><span class="plain-syntax"> != </span><span class="identifier-syntax">CG_IS_CONSULT</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">"cg_token_iname unavailable"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">consult_fn_iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">consult_fn_iname</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CONSULT_FN_HL</span><span class="plain-syntax">, </span><a href="7-cg.html#SP3" class="function-link"><span class="function-syntax">RTCommandGrammars::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CONSULT_FN_HL</span><span class="plain-syntax">, </span><a href="7-cg.html#SP4" class="function-link"><span class="function-syntax">RTCommandGrammars::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</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">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">consult_fn_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. Queued compilation. </b>As noted above, not all types of command grammar have their own packages. For
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. Queued compilation. </b>As noted above, not all types of command grammar have their own packages. For
|
||||
those which do, we queue compilation requests with suitable agents.
|
||||
</p>
|
||||
|
||||
|
@ -221,7 +235,7 @@ those which do, we queue compilation requests with suitable agents.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">cg_is</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CG_IS_TOKEN</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"command grammar for token"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Sequence::queue_at</span><span class="plain-syntax">(&</span><a href="7-cg.html#SP8" class="function-link"><span class="function-syntax">RTCommandGrammars::token_agent</span></a><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Sequence::queue_at</span><span class="plain-syntax">(&</span><a href="7-cg.html#SP9" class="function-link"><span class="function-syntax">RTCommandGrammars::token_agent</span></a><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">STORE_POINTER_command_grammar</span><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_cg_created</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
|
@ -229,7 +243,7 @@ those which do, we queue compilation requests with suitable agents.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">cg_is</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CG_IS_COMMAND</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"command grammar for command '%W'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">command</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Sequence::queue_at</span><span class="plain-syntax">(&</span><a href="7-cg.html#SP9" class="function-link"><span class="function-syntax">RTCommandGrammars::command_agent</span></a><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Sequence::queue_at</span><span class="plain-syntax">(&</span><a href="7-cg.html#SP10" class="function-link"><span class="function-syntax">RTCommandGrammars::command_agent</span></a><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">STORE_POINTER_command_grammar</span><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_cg_created</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
|
@ -238,7 +252,7 @@ those which do, we queue compilation requests with suitable agents.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"command grammar for consult at '%W'"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_cg_created</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Sequence::queue_at</span><span class="plain-syntax">(&</span><a href="7-cg.html#SP10" class="function-link"><span class="function-syntax">RTCommandGrammars::consult_agent</span></a><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Sequence::queue_at</span><span class="plain-syntax">(&</span><a href="7-cg.html#SP11" class="function-link"><span class="function-syntax">RTCommandGrammars::consult_agent</span></a><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">STORE_POINTER_command_grammar</span><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_cg_created</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
|
@ -247,21 +261,21 @@ those which do, we queue compilation requests with suitable agents.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"command grammar for property '%W'"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">prn_understood</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Sequence::queue_at</span><span class="plain-syntax">(&</span><a href="7-cg.html#SP11" class="function-link"><span class="function-syntax">RTCommandGrammars::property_agent</span></a><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Sequence::queue_at</span><span class="plain-syntax">(&</span><a href="7-cg.html#SP12" class="function-link"><span class="function-syntax">RTCommandGrammars::property_agent</span></a><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">STORE_POINTER_command_grammar</span><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_cg_created</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. Compiling CG_IS_TOKEN grammars. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. Compiling CG_IS_TOKEN grammars. </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">RTCommandGrammars::token_agent</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">RTCommandGrammars::token_agent</span></span>:<br/><a href="7-cg.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTCommandGrammars::token_agent</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">RTCommandGrammars::token_agent</span></span>:<br/><a href="7-cg.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_command_grammar</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">CGLines::list_length</span><span class="plain-syntax">(</span><span class="identifier-syntax">cg</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="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">GRAMMAR</span><span class="plain-syntax">, </span><span class="string-syntax">"Compiling command grammar $G\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax"> = </span><a href="2-gpr.html#SP3" class="function-link"><span class="function-syntax">GPRs::new_kit</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="7-cg.html#SP5" class="function-link"><span class="function-syntax">RTCommandGrammars::get_cg_token_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="7-cg.html#SP6" class="function-link"><span class="function-syntax">RTCommandGrammars::get_cg_token_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-gpr.html#SP4" class="function-link"><span class="function-syntax">GPRs::add_original_var</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-gpr.html#SP4" class="function-link"><span class="function-syntax">GPRs::add_standard_vars</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">);</span>
|
||||
|
@ -275,7 +289,7 @@ those which do, we queue compilation requests with suitable agents.
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP12" class="function-link"><span class="function-syntax">EmitCode::ref_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">kit</span><span class="plain-syntax">.</span><span class="element-syntax">rv_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GPR_PREPOSITION_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP14" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_general</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP15" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_general</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">RETURN_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GPR_FAIL_HL</span><span class="plain-syntax">));</span>
|
||||
|
@ -283,10 +297,10 @@ those which do, we queue compilation requests with suitable agents.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Functions::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. Compiling CG_IS_COMMAND grammars. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. Compiling CG_IS_COMMAND grammars. </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">RTCommandGrammars::command_agent</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">RTCommandGrammars::command_agent</span></span>:<br/><a href="7-cg.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTCommandGrammars::command_agent</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">RTCommandGrammars::command_agent</span></span>:<br/><a href="7-cg.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_command_grammar</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">CGLines::list_length</span><span class="plain-syntax">(</span><span class="identifier-syntax">cg</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="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">GRAMMAR</span><span class="plain-syntax">, </span><span class="string-syntax">"Compiling command grammar $G\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
|
@ -308,7 +322,7 @@ those which do, we queue compilation requests with suitable agents.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">WD</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP14" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_general</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP15" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_general</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP6" class="function-link"><span class="function-syntax">EmitArrays::end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">command</span><span class="plain-syntax">)) {</span>
|
||||
|
@ -317,16 +331,16 @@ those which do, we queue compilation requests with suitable agents.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. Compiling CG_IS_CONSULT grammars. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. Compiling CG_IS_CONSULT grammars. </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">RTCommandGrammars::consult_agent</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">RTCommandGrammars::consult_agent</span></span>:<br/><a href="7-cg.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTCommandGrammars::consult_agent</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">RTCommandGrammars::consult_agent</span></span>:<br/><a href="7-cg.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_command_grammar</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">CGLines::list_length</span><span class="plain-syntax">(</span><span class="identifier-syntax">cg</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="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">GRAMMAR</span><span class="plain-syntax">, </span><span class="string-syntax">"Compiling command grammar $G\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax"> = </span><a href="2-gpr.html#SP3" class="function-link"><span class="function-syntax">GPRs::new_kit</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="7-cg.html#SP6" class="function-link"><span class="function-syntax">RTCommandGrammars::get_consult_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="7-cg.html#SP7" class="function-link"><span class="function-syntax">RTCommandGrammars::get_consult_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-gpr.html#SP4" class="function-link"><span class="function-syntax">GPRs::add_range_vars</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-gpr.html#SP4" class="function-link"><span class="function-syntax">GPRs::add_original_var</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">);</span>
|
||||
|
@ -346,7 +360,7 @@ those which do, we queue compilation requests with suitable agents.
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP12" class="function-link"><span class="function-syntax">EmitCode::ref_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">kit</span><span class="plain-syntax">.</span><span class="element-syntax">rv_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GPR_PREPOSITION_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP14" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_general</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP15" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_general</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">RETURN_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GPR_FAIL_HL</span><span class="plain-syntax">));</span>
|
||||
|
@ -354,16 +368,16 @@ those which do, we queue compilation requests with suitable agents.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Functions::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. Compiling CG_IS_PROPERTY grammars. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. Compiling CG_IS_PROPERTY grammars. </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">RTCommandGrammars::property_agent</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">RTCommandGrammars::property_agent</span></span>:<br/><a href="7-cg.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTCommandGrammars::property_agent</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">RTCommandGrammars::property_agent</span></span>:<br/><a href="7-cg.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_command_grammar</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">CGLines::list_length</span><span class="plain-syntax">(</span><span class="identifier-syntax">cg</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="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">GRAMMAR</span><span class="plain-syntax">, </span><span class="string-syntax">"Compiling command grammar $G\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax"> = </span><a href="2-gpr.html#SP3" class="function-link"><span class="function-syntax">GPRs::new_kit</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="7-cg.html#SP4" class="function-link"><span class="function-syntax">RTCommandGrammars::get_property_GPR_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="7-cg.html#SP5" class="function-link"><span class="function-syntax">RTCommandGrammars::get_property_GPR_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-gpr.html#SP4" class="function-link"><span class="function-syntax">GPRs::add_original_var</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-gpr.html#SP4" class="function-link"><span class="function-syntax">GPRs::add_standard_vars</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">);</span>
|
||||
|
@ -377,7 +391,7 @@ those which do, we queue compilation requests with suitable agents.
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP12" class="function-link"><span class="function-syntax">EmitCode::ref_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">kit</span><span class="plain-syntax">.</span><span class="element-syntax">rv_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GPR_PREPOSITION_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP14" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_general</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP15" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_general</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">RETURN_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GPR_FAIL_HL</span><span class="plain-syntax">));</span>
|
||||
|
@ -385,23 +399,23 @@ those which do, we queue compilation requests with suitable agents.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Functions::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. Compiling CG_IS_VALUE grammars. </b>These are not compiled into their own packages, but into the body of GPRs
|
||||
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>§13. Compiling CG_IS_VALUE grammars. </b>These are not compiled into their own packages, but into the body of GPRs
|
||||
to parse values of given kinds. So the following assumes that we are already
|
||||
in the middle of a GPR being compiled.
|
||||
</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">RTCommandGrammars::compile_for_value_GPR</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">RTCommandGrammars::compile_for_value_GPR</span></span>:<br/>Kind GPRs - <a href="7-kg.html#SP1">§1</a>, <a href="7-kg.html#SP2">§2</a>, <a href="7-kg.html#SP3">§3</a>, <a href="7-kg.html#SP4_2">§4.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTCommandGrammars::compile_for_value_GPR</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">RTCommandGrammars::compile_for_value_GPR</span></span>:<br/>Kind GPRs - <a href="7-kg.html#SP1">§1</a>, <a href="7-kg.html#SP2">§2</a>, <a href="7-kg.html#SP3">§3</a>, <a href="7-kg.html#SP4_2">§4.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">cg_is</span><span class="plain-syntax"> != </span><span class="identifier-syntax">CG_IS_VALUE</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"not CG_IS_VALUE"</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">CGLines::list_length</span><span class="plain-syntax">(</span><span class="identifier-syntax">cg</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">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">GRAMMAR</span><span class="plain-syntax">, </span><span class="string-syntax">"Compiling command grammar $G\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_cg_created</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP14" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_general</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP15" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_general</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>§13. Compiling CG_IS_SUBJECT grammars. </b>Again, these are not compiled into their own packages, but into the body of
|
||||
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>§14. Compiling CG_IS_SUBJECT grammars. </b>Again, these are not compiled into their own packages, but into the body of
|
||||
GPRs: in fact, they will be functions used as <span class="extract"><span class="extract-syntax">parse_name</span></span> property values.
|
||||
</p>
|
||||
|
||||
|
@ -418,14 +432,14 @@ hierarchy.
|
|||
</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">RTCommandGrammars::compile_for_subject_GPR</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">RTCommandGrammars::compile_for_subject_GPR</span></span>:<br/>Parse Name Properties - <a href="7-pnp.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTCommandGrammars::compile_for_subject_GPR</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">RTCommandGrammars::compile_for_subject_GPR</span></span>:<br/>Parse Name Properties - <a href="7-pnp.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">cg_is</span><span class="plain-syntax"> != </span><span class="identifier-syntax">CG_IS_SUBJECT</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"not CG_IS_SUBJECT"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">subj_understood</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">PARSING_DATA_FOR_SUBJ</span><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">)-></span><span class="identifier-syntax">understand_as_this_subject</span><span class="plain-syntax"> != </span><span class="identifier-syntax">cg</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">"link between subject and CG broken"</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">GRAMMAR</span><span class="plain-syntax">, </span><span class="string-syntax">"Parse_name content for $j:\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">subj</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP14" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_general</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kit</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP15" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_general</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kit</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PARSING_DATA_FOR_SUBJ</span><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">)-></span><span class="identifier-syntax">understand_as_this_subject</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs</span><span class="plain-syntax">;</span>
|
||||
|
@ -434,13 +448,13 @@ hierarchy.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">PARSING_DATA_FOR_SUBJ</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">PARSING_DATA_FOR_SUBJ</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs</span><span class="plain-syntax">)-></span><span class="identifier-syntax">understand_as_this_subject</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">GRAMMAR</span><span class="plain-syntax">, </span><span class="string-syntax">"And parse_name content inherited from $j:\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">infs</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP14" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_general</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kit</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP15" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_general</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kit</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PARSING_DATA_FOR_SUBJ</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs</span><span class="plain-syntax">)-></span><span class="identifier-syntax">understand_as_this_subject</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>§14. Compiling all grammars. </b>And so all of the above functions ultimately funnel down to this one.
|
||||
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>§15. Compiling all grammars. </b>And so all of the above functions ultimately funnel down to this one.
|
||||
</p>
|
||||
|
||||
<p class="commentary">At this level we compile the list of CGLs in sorted order: this is what the
|
||||
|
@ -458,7 +472,7 @@ for the <span class="extract"><span class="extract-syntax">name</span></span> pr
|
|||
</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">RTCommandGrammars::compile_general</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">RTCommandGrammars::compile_general</span></span>:<br/><a href="7-cg.html#SP8">§8</a>, <a href="7-cg.html#SP9">§9</a>, <a href="7-cg.html#SP10">§10</a>, <a href="7-cg.html#SP11">§11</a>, <a href="7-cg.html#SP12">§12</a>, <a href="7-cg.html#SP13">§13</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTCommandGrammars::compile_general</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">RTCommandGrammars::compile_general</span></span>:<br/><a href="7-cg.html#SP9">§9</a>, <a href="7-cg.html#SP10">§10</a>, <a href="7-cg.html#SP11">§11</a>, <a href="7-cg.html#SP12">§12</a>, <a href="7-cg.html#SP13">§13</a>, <a href="7-cg.html#SP14">§14</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cgl.html#SP4" class="function-link"><span class="function-syntax">RTCommandGrammarLines::list_assert_ownership</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CommandGrammars::sort_command_grammar</span><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
|
||||
|
@ -469,7 +483,7 @@ for the <span class="extract"><span class="extract-syntax">name</span></span> pr
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CommandGrammars::cg_is_genuinely_verbal</span><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG_OUTDENT</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="7-cg.html#SP3" class="function-link"><span class="function-syntax">RTCommandGrammars::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="7-cg.html#SP4" class="function-link"><span class="function-syntax">RTCommandGrammars::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</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">hl</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">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">cg_is</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CG_IS_COMMAND</span><span class="plain-syntax">) </span><span class="identifier-syntax">hl</span><span class="plain-syntax"> = </span><span class="constant-syntax">CG_IS_COMMAND_MD_HL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-></span><span class="identifier-syntax">cg_is</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CG_IS_TOKEN</span><span class="plain-syntax">) </span><span class="identifier-syntax">hl</span><span class="plain-syntax"> = </span><span class="constant-syntax">CG_IS_TOKEN_MD_HL</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -169,7 +169,7 @@ this for a whole list of CGLs:
|
|||
</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">RTCommandGrammarLines::list_assert_ownership</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">RTCommandGrammarLines::list_assert_ownership</span></span>:<br/>Command Grammars - <a href="7-cg.html#SP14">§14</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTCommandGrammarLines::list_assert_ownership</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">RTCommandGrammarLines::list_assert_ownership</span></span>:<br/>Command Grammars - <a href="7-cg.html#SP15">§15</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_UNSORTED_CG_LINES</span><span class="plain-syntax">(</span><span class="identifier-syntax">cgl</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cgl</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">belongs_to_cg</span><span class="plain-syntax"> = </span><span class="identifier-syntax">cg</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -194,7 +194,7 @@ be most, but not all, CG_IS_COMMAND grammars, and no others.
|
|||
</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">RTCommandGrammarLines::compile_cg_line</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">RTCommandGrammarLines::compile_cg_line</span></span>:<br/>Command Grammars - <a href="7-cg.html#SP14">§14</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg_line</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgl</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">cg_is</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTCommandGrammarLines::compile_cg_line</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">RTCommandGrammarLines::compile_cg_line</span></span>:<br/>Command Grammars - <a href="7-cg.html#SP15">§15</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg_line</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cgl</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">cg_is</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">genuinely_verbal</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">GRAMMAR</span><span class="plain-syntax">, </span><span class="string-syntax">"Compiling grammar line: $g\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">cgl</span><span class="plain-syntax">);</span>
|
||||
|
||||
|
|
|
@ -898,7 +898,7 @@ if it works.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">i6_token_iname</span><span class="plain-syntax"> = </span><a href="7-cg.html#SP1" class="function-link"><span class="function-syntax">RTCommandGrammars::iname_for_I6_parser_token</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cgt</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">i6_token_iname</span><span class="plain-syntax"> = </span><a href="7-cg.html#SP2" class="function-link"><span class="function-syntax">RTCommandGrammars::iname_for_I6_parser_token</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cgt</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">code_mode</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
|
@ -1070,7 +1070,7 @@ that token's own GPR.
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PARSETOKENSTOPPED_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GPR_TT_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="7-cg.html#SP5" class="function-link"><span class="function-syntax">RTCommandGrammars::get_cg_token_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="7-cg.html#SP6" class="function-link"><span class="function-syntax">RTCommandGrammars::get_cg_token_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
|
@ -1100,7 +1100,7 @@ that token's own GPR.
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="7-cg.html#SP5" class="function-link"><span class="function-syntax">RTCommandGrammars::get_cg_token_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="7-cg.html#SP6" class="function-link"><span class="function-syntax">RTCommandGrammars::get_cg_token_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</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>
|
||||
</pre>
|
||||
|
|
|
@ -85,7 +85,7 @@ which picks up any irregular meanings added by the source text, say by "Understa
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax"> = </span><a href="2-gpr.html#SP3" class="function-link"><span class="function-syntax">GPRs::new_kit</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-gpr.html#SP4" class="function-link"><span class="function-syntax">GPRs::add_original_var</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CommandGrammars::get_parsing_grammar</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_number</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) </span><a href="7-cg.html#SP12" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_for_value_GPR</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) </span><a href="7-cg.html#SP13" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_for_value_GPR</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">RETURN_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GPR_FAIL_HL</span><span class="plain-syntax">));</span>
|
||||
|
@ -106,7 +106,7 @@ which picks up any irregular meanings added by the source text, say by "Understa
|
|||
<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">TimesOfDay::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">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CommandGrammars::get_parsing_grammar</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">cg</span><span class="plain-syntax">) </span><a href="7-cg.html#SP12" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_for_value_GPR</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) </span><a href="7-cg.html#SP13" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_for_value_GPR</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">RETURN_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
|
@ -126,7 +126,7 @@ which picks up any irregular meanings added by the source text, say by "Understa
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax"> = </span><a href="2-gpr.html#SP3" class="function-link"><span class="function-syntax">GPRs::new_kit</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-gpr.html#SP4" class="function-link"><span class="function-syntax">GPRs::add_original_var</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CommandGrammars::get_parsing_grammar</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_truth_state</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) </span><a href="7-cg.html#SP12" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_for_value_GPR</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">) </span><a href="7-cg.html#SP13" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_for_value_GPR</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">RETURN_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GPR_FAIL_HL</span><span class="plain-syntax">));</span>
|
||||
|
@ -205,7 +205,7 @@ kind, trying each possible notation in turn until one matches:
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">command_grammar</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cg</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CommandGrammars::get_parsing_grammar</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">cg</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP12" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_for_value_GPR</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP13" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_for_value_GPR</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-kg.html#SP4_3" class="named-paragraph-link"><span class="named-paragraph">Reset word number</span><span class="named-paragraph-number">4.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
|
|
|
@ -148,7 +148,7 @@ all of the work is delegated:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">gpr_kit</span><span class="plain-syntax"> </span><span class="identifier-syntax">kit</span><span class="plain-syntax"> = </span><a href="2-gpr.html#SP3" class="function-link"><span class="function-syntax">GPRs::new_kit</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><a href="7-np.html#SP3" class="function-link"><span class="function-syntax">Name::get_parse_name_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="7-pnp.html#SP4" class="function-link"><span class="function-syntax">ParseName::compile_head</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP13" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_for_subject_GPR</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-cg.html#SP14" class="function-link"><span class="function-syntax">RTCommandGrammars::compile_for_subject_GPR</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-pnp.html#SP6" class="function-link"><span class="function-syntax">ParseName::compile_tail</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">kit</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Functions::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -1229,7 +1229,7 @@ alter the value of <span class="extract"><span class="extract-syntax">self</span
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::test_if_iname_has_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SELF_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="7-cg.html#SP4" class="function-link"><span class="function-syntax">RTCommandGrammars::get_property_GPR_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="7-cg.html#SP5" class="function-link"><span class="function-syntax">RTCommandGrammars::get_property_GPR_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GPR_PREPOSITION_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
|
|
|
@ -188,7 +188,7 @@
|
|||
<li>
|
||||
<p class="sectionentry"><a href="3-gm.html">
|
||||
<spon class="sectiontitle">Generic Module</span></a> -
|
||||
<span class="sectionpurpose">Inter constants for, say, extremal number values, which depend only on the target we are compiling to, and are generally low-level in nature.</span></p>
|
||||
<span class="sectionpurpose">A variety of Inter constants which do not depend on the content of the program.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-cm.html">
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
Total memory consumption was 403898K = 394 MB
|
||||
Total memory consumption was 403890K = 394 MB
|
||||
|
||||
61.4% was used for 2025942 objects, in 380041 frames in 310 x 800K = 248000K = 242 MB:
|
||||
61.4% was used for 2024807 objects, in 380028 frames in 310 x 800K = 248000K = 242 MB:
|
||||
|
||||
10.1% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
|
||||
7.2% text_stream_array 5295 x 100 = 529500 objects, 29821440 bytes
|
||||
7.2% text_stream_array 5294 x 100 = 529400 objects, 29815808 bytes
|
||||
4.7% linked_list 34785 objects, 19479600 bytes
|
||||
4.1% inter_symbol_array 140 x 1024 = 143360 objects, 17207680 bytes
|
||||
4.1% inter_symbol_array 139 x 1024 = 142336 objects, 17084768 bytes
|
||||
2.5% 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
|
||||
|
@ -14,10 +14,10 @@ Total memory consumption was 403898K = 394 MB
|
|||
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_schema_token 13926 objects, 2005344 bytes
|
||||
0.4% inter_package 26570 objects, 1913040 bytes
|
||||
0.4% package_request 21140 objects, 1860320 bytes
|
||||
0.4% inter_package 26569 objects, 1912968 bytes
|
||||
0.4% package_request 21139 objects, 1860232 bytes
|
||||
0.4% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes
|
||||
0.4% inter_symbols_table 26570 objects, 1700480 bytes
|
||||
0.4% inter_symbols_table 26569 objects, 1700416 bytes
|
||||
0.3% dictionary 33305 objects, 1598640 bytes
|
||||
0.3% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes
|
||||
0.3% i6_schema_array 23 x 100 = 2300 objects, 1380736 bytes
|
||||
|
@ -42,8 +42,8 @@ Total memory consumption was 403898K = 394 MB
|
|||
---- inference_subject 665 objects, 260680 bytes
|
||||
---- vanilla_function 3678 objects, 235392 bytes
|
||||
---- inter_annotation_array 1 x 8192 objects, 196640 bytes
|
||||
---- hierarchy_location 1119 objects, 170088 bytes
|
||||
---- binary_predicate 321 objects, 169488 bytes
|
||||
---- hierarchy_location 1111 objects, 168872 bytes
|
||||
---- linguistic_stock_item 3316 objects, 159168 bytes
|
||||
---- rule_family_data 400 objects, 147200 bytes
|
||||
---- nonterminal 760 objects, 139840 bytes
|
||||
|
@ -54,7 +54,7 @@ Total memory consumption was 403898K = 394 MB
|
|||
---- noun_usage 2402 objects, 96080 bytes
|
||||
---- anl_entry_array 2 x 1000 = 2000 objects, 96064 bytes
|
||||
---- preposition 273 objects, 87360 bytes
|
||||
---- inter_tree 6 objects, 83904 bytes
|
||||
---- inter_tree 6 objects, 83520 bytes
|
||||
---- lexical_cluster 2517 objects, 80544 bytes
|
||||
---- pcalc_term_array 2 x 1000 = 2000 objects, 80064 bytes
|
||||
---- kind_variable_declaration 1652 objects, 79296 bytes
|
||||
|
@ -133,7 +133,7 @@ Total memory consumption was 403898K = 394 MB
|
|||
---- compatibility_specification 86 objects, 4128 bytes
|
||||
---- command_line_switch 49 objects, 3920 bytes
|
||||
---- activity 35 objects, 3920 bytes
|
||||
---- submodule_request 95 objects, 3800 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 104 objects, 3328 bytes
|
||||
|
@ -157,8 +157,8 @@ Total memory consumption was 403898K = 394 MB
|
|||
---- inform_pipeline 24 objects, 1536 bytes
|
||||
---- cached_kind_declaration 38 objects, 1520 bytes
|
||||
---- noun_filter_token 22 objects, 1408 bytes
|
||||
---- inter_annotation_form 34 objects, 1360 bytes
|
||||
---- inter_tree_location_list 34 objects, 1360 bytes
|
||||
---- inter_annotation_form 33 objects, 1320 bytes
|
||||
---- special_meaning_holder 33 objects, 1320 bytes
|
||||
---- table_column 16 objects, 1280 bytes
|
||||
---- constant_phrase 20 objects, 1280 bytes
|
||||
|
@ -237,7 +237,7 @@ Total memory consumption was 403898K = 394 MB
|
|||
|
||||
38.5% was used for memory not allocated for objects:
|
||||
|
||||
20.1% text stream storage 83496896 bytes in 547490 claims
|
||||
20.1% text stream storage 83487728 bytes in 547364 claims
|
||||
4.4% dictionary storage 18360832 bytes in 33305 claims
|
||||
---- sorting 736 bytes in 3 claims
|
||||
1.7% source text 7200000 bytes in 3 claims
|
||||
|
@ -245,7 +245,7 @@ Total memory consumption was 403898K = 394 MB
|
|||
---- documentation fragments 262144 bytes in 1 claim
|
||||
---- linguistic stock array 81920 bytes in 2 claims
|
||||
---- small word set array 105600 bytes in 22 claims
|
||||
1.0% inter symbols storage 4267472 bytes in 27675 claims
|
||||
1.0% inter symbols storage 4268832 bytes in 27677 claims
|
||||
4.0% inter bytecode storage 16802748 bytes in 14 claims
|
||||
3.9% inter links storage 16174208 bytes in 266 claims
|
||||
---- inter tree location list storage 191232 bytes in 32 claims
|
||||
|
@ -255,5 +255,5 @@ Total memory consumption was 403898K = 394 MB
|
|||
---- code generation workspace for objects 1336 bytes in 4 claims
|
||||
---- emitter array storage 161792 bytes in 2062 claims
|
||||
|
||||
19.1% was overhead - 79168936 bytes = 77313K = 75 MB
|
||||
19.1% was overhead - 79299304 bytes = 77440K = 75 MB
|
||||
|
||||
|
|
|
@ -1,33 +1,34 @@
|
|||
100.0% in inform7 run
|
||||
56.8% in compilation to Inter
|
||||
41.2% in //Sequence::undertake_queued_tasks//
|
||||
57.3% in compilation to Inter
|
||||
41.4% in //Sequence::undertake_queued_tasks//
|
||||
3.5% in //MajorNodes::pre_pass//
|
||||
2.6% in //MajorNodes::pass_1//
|
||||
2.1% in //RTPhrasebook::compile_entries//
|
||||
1.3% in //ImperativeDefinitions::assess_all//
|
||||
1.2% in //RTKindConstructors::compile//
|
||||
2.2% in //RTPhrasebook::compile_entries//
|
||||
1.4% in //ImperativeDefinitions::assess_all//
|
||||
1.1% in //RTKindConstructors::compile//
|
||||
0.4% in //ImperativeDefinitions::compile_first_block//
|
||||
0.4% in //MajorNodes::pass_2//
|
||||
0.4% in //Sequence::undertake_queued_tasks//
|
||||
0.4% in //Sequence::undertake_queued_tasks//
|
||||
0.4% in //World::stage_V//
|
||||
0.3% in //ImperativeDefinitions::compile_first_block//
|
||||
0.3% in //Sequence::undertake_queued_tasks//
|
||||
0.1% in //CompletionModule::compile//
|
||||
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.0% in running Inter pipeline
|
||||
10.8% in step preparation
|
||||
0.1% in //World::stages_II_and_III//
|
||||
1.9% not specifically accounted for
|
||||
40.7% in running Inter pipeline
|
||||
10.3% in step preparation
|
||||
10.0% in inter step 6/14: make-synoptic-module
|
||||
8.0% in inter step 5/14: load-binary-kits
|
||||
7.2% in inter step 14/14: generate inform6 -> auto.inf
|
||||
1.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
|
||||
8.1% in inter step 5/14: load-binary-kits
|
||||
7.0% in inter step 14/14: generate inform6 -> auto.inf
|
||||
1.6% in inter step 9/14: make-identifiers-unique
|
||||
0.2% 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
|
||||
0.2% in inter step 8/14: detect-indirect-calls
|
||||
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
|
||||
1.7% not specifically accounted for
|
||||
2.1% not specifically accounted for
|
||||
1.7% in supervisor
|
||||
0.4% not specifically accounted for
|
||||
0.2% not specifically accounted for
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -76,7 +76,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
object [15] <a href=#A232><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
object [15] <a href=#A231><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
north
|
||||
|
@ -370,7 +370,7 @@
|
|||
</tr>
|
||||
<tr bgcolor="#f0f0ff">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
number <a href="Kinds.html?segment2"><img border=0 src=inform:/doc_images/calc1.png></a> <a href=inform:/doc227.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1360><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
number <a href="Kinds.html?segment2"><img border=0 src=inform:/doc_images/calc1.png></a> <a href=inform:/doc227.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1359><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
0
|
||||
|
@ -387,7 +387,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
real number <a href="Kinds.html?segment2"><img border=0 src=inform:/doc_images/calc1.png></a> <a href=inform:/doc227.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1361><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
real number <a href="Kinds.html?segment2"><img border=0 src=inform:/doc_images/calc1.png></a> <a href=inform:/doc227.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1360><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
0
|
||||
|
@ -404,7 +404,7 @@
|
|||
</tr>
|
||||
<tr bgcolor="#f0f0ff">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
time <a href="Kinds.html?segment2"><img border=0 src=inform:/doc_images/calc1.png></a> <a href=inform:/doc140.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1376><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
time <a href="Kinds.html?segment2"><img border=0 src=inform:/doc_images/calc1.png></a> <a href=inform:/doc140.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1375><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
9:00 AM
|
||||
|
@ -421,7 +421,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
truth state <a href=inform:/doc163.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1362><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
truth state <a href=inform:/doc163.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1361><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
false
|
||||
|
@ -438,7 +438,7 @@
|
|||
</tr>
|
||||
<tr bgcolor="#f0f0ff">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
text <a href=#A1363><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
text <a href=#A1362><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
""
|
||||
|
@ -455,7 +455,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
snippet <a href=inform:/doc319.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1364><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
snippet <a href=inform:/doc319.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1363><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
<i>word 1 of command</i>
|
||||
|
@ -472,7 +472,7 @@
|
|||
</tr>
|
||||
<tr bgcolor="#f0f0ff">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
unicode character <a href=#A1365><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
unicode character <a href=#A1364><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
unicode 32 (<i>a space</i>)
|
||||
|
@ -489,7 +489,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
action <a href=inform:/doc196.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1374><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
action <a href=inform:/doc196.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1373><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
waiting
|
||||
|
@ -506,7 +506,7 @@
|
|||
</tr>
|
||||
<tr bgcolor="#f0f0ff">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
scene <a href=inform:/doc150.html><img border=0 src=inform:/doc_images/help.png></a> [1] <a href=#A839><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
scene <a href=inform:/doc150.html><img border=0 src=inform:/doc_images/help.png></a> [1] <a href=#A838><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
Entire Game
|
||||
|
@ -523,7 +523,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
command parser error [25] <a href=#A1403><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
command parser error [25] <a href=#A1402><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
didn't understand error
|
||||
|
@ -540,7 +540,7 @@
|
|||
</tr>
|
||||
<tr bgcolor="#f0f0ff">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
dynasty <a href="source:story.ni#line3"><img border=0 src=inform:/doc_images/Reveal.png></a> [4] <a href=#A1405><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
dynasty <a href="source:story.ni#line3"><img border=0 src=inform:/doc_images/Reveal.png></a> [4] <a href=#A1404><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
Stuart
|
||||
|
@ -557,7 +557,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
use option <a href=#A1366><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
use option <a href=#A1365><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
the ineffectual option
|
||||
|
@ -574,7 +574,7 @@
|
|||
</tr>
|
||||
<tr bgcolor="#f0f0ff">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
response <a href=#A1367><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
response <a href=#A1366><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
?
|
||||
|
@ -591,7 +591,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
verb <a href=inform:/doc222.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1368><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
verb <a href=inform:/doc222.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1367><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
verb be
|
||||
|
@ -608,7 +608,7 @@
|
|||
</tr>
|
||||
<tr bgcolor="#f0f0ff">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
table name <a href=inform:/doc260.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1369><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
table name <a href=inform:/doc260.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1368><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
<i>a table with no rows or columns</i>
|
||||
|
@ -625,7 +625,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
<span style='color:#808080'>equation name <a href=#A1370><img border=0 src=inform:/doc_images/Below.png></a></span>
|
||||
<span style='color:#808080'>equation name <a href=#A1369><img border=0 src=inform:/doc_images/Below.png></a></span>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
<span style='color:#808080'><i>an equation doing nothing</i></span>
|
||||
|
@ -642,7 +642,7 @@
|
|||
</tr>
|
||||
<tr bgcolor="#f0f0ff">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
rulebook outcome <a href=#A1371><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
rulebook outcome <a href=#A1370><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
allow access
|
||||
|
@ -659,7 +659,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
<span style='color:#808080'>external file <a href=inform:/doc384.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1372><img border=0 src=inform:/doc_images/Below.png></a></span>
|
||||
<span style='color:#808080'>external file <a href=inform:/doc384.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1371><img border=0 src=inform:/doc_images/Below.png></a></span>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
<span style='color:#808080'><i>a non-file</i></span>
|
||||
|
@ -676,7 +676,7 @@
|
|||
</tr>
|
||||
<tr bgcolor="#f0f0ff">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
action name <a href=inform:/doc98.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1375><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
action name <a href=inform:/doc98.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1374><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
waiting action
|
||||
|
@ -693,7 +693,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
figure name <a href=inform:/doc376.html><img border=0 src=inform:/doc_images/help.png></a> [1] <a href=#A1377><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
figure name <a href=inform:/doc376.html><img border=0 src=inform:/doc_images/help.png></a> [1] <a href=#A1376><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
Figure of cover
|
||||
|
@ -710,7 +710,7 @@
|
|||
</tr>
|
||||
<tr bgcolor="#f0f0ff">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
<span style='color:#808080'>sound name <a href=inform:/doc379.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1378><img border=0 src=inform:/doc_images/Below.png></a></span>
|
||||
<span style='color:#808080'>sound name <a href=inform:/doc379.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1377><img border=0 src=inform:/doc_images/Below.png></a></span>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
<span style='color:#808080'><i>a silent non-sound</i></span>
|
||||
|
@ -732,7 +732,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
natural language [6] <a href=#A1381><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
natural language [6] <a href=#A1380><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
German language
|
||||
|
@ -749,7 +749,7 @@
|
|||
</tr>
|
||||
<tr bgcolor="#f0f0ff">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
grammatical tense <a href='inform://Extensions/Extensions/Graham%20Nelson/English%20Language.html' title="English Language by Graham Nelson" style="text-decoration: none"><img border=0 src=inform:/doc_images/Revealext.png></a> [5] <a href=#A1383><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
grammatical tense <a href='inform://Extensions/Extensions/Graham%20Nelson/English%20Language.html' title="English Language by Graham Nelson" style="text-decoration: none"><img border=0 src=inform:/doc_images/Revealext.png></a> [5] <a href=#A1382><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
present tense
|
||||
|
@ -766,7 +766,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
narrative viewpoint <a href='inform://Extensions/Extensions/Graham%20Nelson/English%20Language.html' title="English Language by Graham Nelson" style="text-decoration: none"><img border=0 src=inform:/doc_images/Revealext.png></a> [6] <a href=#A1384><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
narrative viewpoint <a href='inform://Extensions/Extensions/Graham%20Nelson/English%20Language.html' title="English Language by Graham Nelson" style="text-decoration: none"><img border=0 src=inform:/doc_images/Revealext.png></a> [6] <a href=#A1383><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
first person singular
|
||||
|
@ -783,7 +783,7 @@
|
|||
</tr>
|
||||
<tr bgcolor="#f0f0ff">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
grammatical case <a href='inform://Extensions/Extensions/Graham%20Nelson/English%20Language.html' title="English Language by Graham Nelson" style="text-decoration: none"><img border=0 src=inform:/doc_images/Revealext.png></a> [2] <a href=#A1385><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
grammatical case <a href='inform://Extensions/Extensions/Graham%20Nelson/English%20Language.html' title="English Language by Graham Nelson" style="text-decoration: none"><img border=0 src=inform:/doc_images/Revealext.png></a> [2] <a href=#A1384><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
nominative
|
||||
|
@ -800,7 +800,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
grammatical gender <a href='inform://Extensions/Extensions/Graham%20Nelson/English%20Language.html' title="English Language by Graham Nelson" style="text-decoration: none"><img border=0 src=inform:/doc_images/Revealext.png></a> [3] <a href=#A1386><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
grammatical gender <a href='inform://Extensions/Extensions/Graham%20Nelson/English%20Language.html' title="English Language by Graham Nelson" style="text-decoration: none"><img border=0 src=inform:/doc_images/Revealext.png></a> [3] <a href=#A1385><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
neuter gender
|
||||
|
@ -844,7 +844,7 @@
|
|||
</tr>
|
||||
<tr bgcolor="#f0f0ff">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
list of K <a href=inform:/doc352.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1426><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
list of K <a href=inform:/doc352.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A1425><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top" colspan="4">
|
||||
{ }
|
||||
|
@ -852,7 +852,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
phrase K -> L <a href=#A2083><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
phrase K -> L <a href=#A2082><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top" colspan="4">
|
||||
<i>always the default value of L</i>
|
||||
|
@ -860,7 +860,7 @@
|
|||
</tr>
|
||||
<tr bgcolor="#f0f0ff">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
<span style='color:#808080'></span>relation<span style='color:#808080'> of K</span> <a href=#A2181><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
<span style='color:#808080'></span>relation<span style='color:#808080'> of K</span> <a href=#A2180><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top" colspan="4">
|
||||
<i>a relation never holding</i>
|
||||
|
@ -868,7 +868,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
<span style='color:#808080'>K based</span> rule<span style='color:#808080'> producing L</span> <a href=inform:/doc327.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A2184><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
<span style='color:#808080'>K based</span> rule<span style='color:#808080'> producing L</span> <a href=inform:/doc327.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A2183><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top" colspan="4">
|
||||
the little-used do nothing rule
|
||||
|
@ -876,7 +876,7 @@
|
|||
</tr>
|
||||
<tr bgcolor="#f0f0ff">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
<span style='color:#808080'>K based</span> rulebook<span style='color:#808080'> producing L</span> <a href=inform:/doc327.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A2187><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
<span style='color:#808080'>K based</span> rulebook<span style='color:#808080'> producing L</span> <a href=inform:/doc327.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A2186><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top" colspan="4">
|
||||
the action-processing rules
|
||||
|
@ -884,7 +884,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
<span style='color:#808080'></span>activity<span style='color:#808080'> on K</span> <a href=inform:/doc287.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A2190><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
<span style='color:#808080'></span>activity<span style='color:#808080'> on K</span> <a href=inform:/doc287.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A2189><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top" colspan="4">
|
||||
printing the name
|
||||
|
@ -892,7 +892,7 @@
|
|||
</tr>
|
||||
<tr bgcolor="#f0f0ff">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
description of K <a href=inform:/doc364.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A2196><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
description of K <a href=inform:/doc364.html><img border=0 src=inform:/doc_images/help.png></a> <a href=#A2195><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top" colspan="4">
|
||||
<i>matching nothing</i>
|
||||
|
@ -900,7 +900,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
<span style='color:#808080'>K valued</span> property<span style='color:#808080'></span> <a href=#A2198><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
<span style='color:#808080'>K valued</span> property<span style='color:#808080'></span> <a href=#A2197><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top" colspan="4">
|
||||
--
|
||||
|
@ -908,7 +908,7 @@
|
|||
</tr>
|
||||
<tr bgcolor="#f0f0ff">
|
||||
<td style="white-space:nowrap;" align="left" valign="top" height="20">
|
||||
<span style='color:#808080'>K valued</span> table<span style='color:#808080'></span> column<span style='color:#808080'></span> <a href=#A2200><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
<span style='color:#808080'>K valued</span> table<span style='color:#808080'></span> column<span style='color:#808080'></span> <a href=#A2199><img border=0 src=inform:/doc_images/Below.png></a>
|
||||
</td>
|
||||
<td align="left" valign="top" colspan="4">
|
||||
--
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -165,7 +165,7 @@ void Hierarchy::establish(void) {
|
|||
H_BEGIN_DECLARATIONS
|
||||
@<Establish locations for material created by the compiler@>;
|
||||
@<Establish locations for material expected to be added by linking@>;
|
||||
InterNames::to_symbol(Hierarchy::find(SELF_HL));
|
||||
@<Prevent arcbitectural symbols from being doubly defined@>;
|
||||
H_END_DECLARATIONS
|
||||
}
|
||||
|
||||
|
@ -198,19 +198,12 @@ void Hierarchy::establish(void) {
|
|||
@<The rest@>;
|
||||
|
||||
@<Establish locations for material expected to be added by linking@> =
|
||||
@<Establish veneer resources@>;
|
||||
@<Establish architecturak resources@>;
|
||||
|
||||
@h Basics.
|
||||
|
||||
@e BOGUS_HAP from 0
|
||||
|
||||
@e NULL_HL
|
||||
@e WORD_HIGHBIT_HL
|
||||
@e WORD_NEXTTOHIGHBIT_HL
|
||||
@e IMPROBABLE_VALUE_HL
|
||||
@e REPARSE_CODE_HL
|
||||
@e MAX_POSITIVE_NUMBER_HL
|
||||
@e MIN_NEGATIVE_NUMBER_HL
|
||||
@e I7_VERSION_NUMBER_HL
|
||||
@e I7_FULL_VERSION_NUMBER_HL
|
||||
@e VM_MD_HL
|
||||
|
@ -225,12 +218,6 @@ void Hierarchy::establish(void) {
|
|||
@e KIT_CONFIGURATION_LOOKMODE_HL
|
||||
@e LOCALPARKING_HL
|
||||
@e RNG_SEED_AT_START_OF_PLAY_HL
|
||||
@e DEBUG_HL
|
||||
@e TARGET_ZCODE_HL
|
||||
@e TARGET_GLULX_HL
|
||||
@e DICT_WORD_SIZE_HL
|
||||
@e WORDSIZE_HL
|
||||
@e INDIV_PROP_START_HL
|
||||
@e MAX_FRAME_SIZE_NEEDED_HL
|
||||
@e SUBMAIN_HL
|
||||
@e HEADINGS_HAP
|
||||
|
@ -253,22 +240,6 @@ void Hierarchy::establish(void) {
|
|||
@<Establish basics@> =
|
||||
submodule_identity *basics = Packaging::register_submodule(I"basics");
|
||||
|
||||
H_BEGIN(HierarchyLocations::generic_submodule(I, basics))
|
||||
H_C_T(NULL_HL, I"NULL")
|
||||
H_C_T(WORD_HIGHBIT_HL, I"WORD_HIGHBIT")
|
||||
H_C_T(WORD_NEXTTOHIGHBIT_HL, I"WORD_NEXTTOHIGHBIT")
|
||||
H_C_T(IMPROBABLE_VALUE_HL, I"IMPROBABLE_VALUE")
|
||||
H_C_T(REPARSE_CODE_HL, I"REPARSE_CODE")
|
||||
H_C_T(MAX_POSITIVE_NUMBER_HL, I"MAX_POSITIVE_NUMBER")
|
||||
H_C_T(MIN_NEGATIVE_NUMBER_HL, I"MIN_NEGATIVE_NUMBER")
|
||||
H_C_T(DEBUG_HL, I"DEBUG")
|
||||
H_C_T(TARGET_ZCODE_HL, I"TARGET_ZCODE")
|
||||
H_C_T(TARGET_GLULX_HL, I"TARGET_GLULX")
|
||||
H_C_T(DICT_WORD_SIZE_HL, I"DICT_WORD_SIZE")
|
||||
H_C_T(WORDSIZE_HL, I"WORDSIZE")
|
||||
H_C_T(INDIV_PROP_START_HL, I"INDIV_PROP_START")
|
||||
H_END
|
||||
|
||||
H_BEGIN(HierarchyLocations::completion_submodule(I, basics))
|
||||
H_C_T(I7_VERSION_NUMBER_HL, I"I7_VERSION_NUMBER")
|
||||
H_C_T(I7_FULL_VERSION_NUMBER_HL, I"I7_FULL_VERSION_NUMBER")
|
||||
|
@ -751,6 +722,8 @@ void Hierarchy::establish(void) {
|
|||
@e SLASH_TOKENS_HAP
|
||||
@e SLASH_FN_HL
|
||||
|
||||
@e REPARSE_CODE_HL
|
||||
@e DICT_WORD_SIZE_HL
|
||||
@e VERB_DIRECTIVE_CREATURE_HL
|
||||
@e VERB_DIRECTIVE_DIVIDER_HL
|
||||
@e VERB_DIRECTIVE_HELD_HL
|
||||
|
@ -802,6 +775,8 @@ void Hierarchy::establish(void) {
|
|||
submodule_identity *grammar = Packaging::register_submodule(I"grammar");
|
||||
|
||||
H_BEGIN(HierarchyLocations::generic_submodule(I, grammar))
|
||||
H_C_T(REPARSE_CODE_HL, I"REPARSE_CODE")
|
||||
H_C_T(DICT_WORD_SIZE_HL, I"DICT_WORD_SIZE")
|
||||
H_C_T(VERB_DIRECTIVE_CREATURE_HL, I"VERB_DIRECTIVE_CREATURE")
|
||||
H_C_T(VERB_DIRECTIVE_DIVIDER_HL, I"VERB_DIRECTIVE_DIVIDER")
|
||||
H_C_T(VERB_DIRECTIVE_HELD_HL, I"VERB_DIRECTIVE_HELD")
|
||||
|
@ -1946,19 +1921,37 @@ void Hierarchy::establish(void) {
|
|||
H_F_T(PRINT_SCENE_HL, I"print_fn", I"PrintSceneName")
|
||||
H_END
|
||||
|
||||
@h Veneer-defined symbols.
|
||||
The "veneer" in the Inform 6 compiler consists of a few constants and functions
|
||||
automatically created by the compiler itself, and which therefore have no source
|
||||
code producing them. See the Inform 6 Technical Manual. Of these, the most
|
||||
important is the pseudo-variable |self|.
|
||||
@h Architectural symbols.
|
||||
These are built-in constants (and one built-in variable, |self|) which come
|
||||
from the platform we are compiling to. See //building: Building Site//.
|
||||
|
||||
There are other architectural symbols besides these, but these are the only
|
||||
ones which the //inform7//-compiled code needs to refer to.
|
||||
|
||||
@e SELF_HL
|
||||
@e NULL_HL
|
||||
@e MAX_POSITIVE_NUMBER_HL
|
||||
@e MIN_NEGATIVE_NUMBER_HL
|
||||
|
||||
@<Establish veneer resources@> =
|
||||
@<Establish architecturak resources@> =
|
||||
H_BEGIN(HierarchyLocations::the_veneer(I))
|
||||
H_C_T(SELF_HL, I"self")
|
||||
H_C_T(NULL_HL, I"NULL")
|
||||
H_C_T(MAX_POSITIVE_NUMBER_HL, I"MAX_POSITIVE_NUMBER")
|
||||
H_C_T(MIN_NEGATIVE_NUMBER_HL, I"MIN_NEGATIVE_NUMBER")
|
||||
H_END
|
||||
|
||||
@ Note that because these are automatically created by the building machinery
|
||||
anyway, we need to make sure that a call to |Hierarchy::find| does not
|
||||
create a duplicate with a name like |NULL_1|. This is a race condition, and
|
||||
the easiest way to avoid it is to force the issue now:
|
||||
|
||||
@<Prevent arcbitectural symbols from being doubly defined@> =
|
||||
InterNames::to_symbol(Hierarchy::find(SELF_HL));
|
||||
InterNames::to_symbol(Hierarchy::find(MAX_POSITIVE_NUMBER_HL));
|
||||
InterNames::to_symbol(Hierarchy::find(MIN_NEGATIVE_NUMBER_HL));
|
||||
InterNames::to_symbol(Hierarchy::find(NULL_HL));
|
||||
|
||||
@ Heaven knows, that all seems like plenty, but there's one final case. Neptune
|
||||
files inside kits -- which define built-in kinds like "number" -- need to make
|
||||
reference to constants in those kits which give their default values. For
|
||||
|
|
|
@ -1,93 +1,16 @@
|
|||
[GenericModule::] Generic Module.
|
||||
|
||||
Inter constants for, say, extremal number values, which depend only on the
|
||||
target we are compiling to, and are generally low-level in nature.
|
||||
A variety of Inter constants which do not depend on the content of the program.
|
||||
|
||||
@ =
|
||||
void GenericModule::compile(void) {
|
||||
Emit::rudimentary_kinds();
|
||||
GenericModule::compile_basic_constants();
|
||||
target_vm *VM = Task::vm();
|
||||
if (VM == NULL) internal_error("target VM not set yet");
|
||||
Site::make_architectural_definitions(Emit::tree(),
|
||||
TargetVMs::get_architecture(VM), unchecked_interk);
|
||||
RTVerbs::compile_generic_constants();
|
||||
RTCommandGrammars::compile_generic_constants();
|
||||
RTPlayer::compile_generic_constants();
|
||||
RTRelations::compile_generic_constants();
|
||||
}
|
||||
|
||||
@ The generic module depends on the VM, but on nothing else.
|
||||
|
||||
=
|
||||
void GenericModule::compile_basic_constants(void) {
|
||||
target_vm *VM = Task::vm();
|
||||
if (VM == NULL) internal_error("target VM not set yet");
|
||||
|
||||
if (TargetVMs::debug_enabled(VM)) GenericModule::emit_one(DEBUG_HL, 1);
|
||||
|
||||
if (TargetVMs::is_16_bit(VM)) @<16-bit constants@>
|
||||
else @<32-bit constants@>;
|
||||
}
|
||||
|
||||
@ These constants mostly have obvious meanings, but a few notes:
|
||||
|
||||
(1) |NULL|, in our runtime, is -1, and not 0 as it would be in C. This is
|
||||
emitted as "unchecked" to avoid the value being rejected as being too large,
|
||||
as it would be if it were viewed as a signed rather than unsigned integer.
|
||||
|
||||
(2) |IMPROBABLE_VALUE| is one which is unlikely even if possible to be a
|
||||
genuine I7 value. The efficiency of runtime code handling tables depends on
|
||||
how well chosen this is: it would ran badly if we chose 1, for instance.
|
||||
|
||||
(3) |REPARSE_CODE| is a magic value used in //CommandParserKit// to
|
||||
signal that some code which ought to have been parsing a command has in
|
||||
fact rewritten it, so that the whole command must be re-parsed afresh.
|
||||
That doesn't sound very "fundamental", but in fact it depends on the word
|
||||
size, because it needs to be a large number but also such that an address
|
||||
in the VM can be added to it without it becoming negative.
|
||||
|
||||
@<16-bit constants@> =
|
||||
GenericModule::emit_one(WORDSIZE_HL, 2);
|
||||
GenericModule::emit_unchecked_hex(NULL_HL, 0xffff);
|
||||
GenericModule::emit_hex(WORD_HIGHBIT_HL, 0x8000);
|
||||
GenericModule::emit_hex(WORD_NEXTTOHIGHBIT_HL, 0x4000);
|
||||
GenericModule::emit_hex(IMPROBABLE_VALUE_HL, 0x7fe3);
|
||||
GenericModule::emit_hex(REPARSE_CODE_HL, 10000);
|
||||
GenericModule::emit_one(MAX_POSITIVE_NUMBER_HL, 32767);
|
||||
GenericModule::emit_signed(MIN_NEGATIVE_NUMBER_HL, -32768);
|
||||
GenericModule::emit_one(TARGET_ZCODE_HL, 1);
|
||||
GenericModule::emit_one(DICT_WORD_SIZE_HL, 6);
|
||||
|
||||
@<32-bit constants@> =
|
||||
GenericModule::emit_one(WORDSIZE_HL, 4);
|
||||
GenericModule::emit_unchecked_hex(NULL_HL, 0xffffffff);
|
||||
GenericModule::emit_hex(WORD_HIGHBIT_HL, 0x80000000);
|
||||
GenericModule::emit_hex(WORD_NEXTTOHIGHBIT_HL, 0x40000000);
|
||||
GenericModule::emit_hex(IMPROBABLE_VALUE_HL, 0xdeadce11);
|
||||
GenericModule::emit_hex(REPARSE_CODE_HL, 0x40000000);
|
||||
GenericModule::emit_one(MAX_POSITIVE_NUMBER_HL, 2147483647);
|
||||
GenericModule::emit_signed(MIN_NEGATIVE_NUMBER_HL, -2147483648);
|
||||
GenericModule::emit_one(TARGET_GLULX_HL, 1);
|
||||
GenericModule::emit_one(DICT_WORD_SIZE_HL, 9);
|
||||
GenericModule::emit_one(INDIV_PROP_START_HL, 0);
|
||||
|
||||
@ Note that all of these constants are made available for linking:
|
||||
|
||||
=
|
||||
void GenericModule::emit_one(int id, inter_ti val) {
|
||||
inter_name *iname = Hierarchy::find(id);
|
||||
Hierarchy::make_available(iname);
|
||||
Emit::numeric_constant(iname, val);
|
||||
}
|
||||
void GenericModule::emit_signed(int id, int val) {
|
||||
inter_name *iname = Hierarchy::find(id);
|
||||
Hierarchy::make_available(iname);
|
||||
Emit::named_numeric_constant_signed(iname, val);
|
||||
}
|
||||
void GenericModule::emit_hex(int id, inter_ti val) {
|
||||
inter_name *iname = Hierarchy::find(id);
|
||||
Hierarchy::make_available(iname);
|
||||
Emit::named_numeric_constant_hex(iname, val);
|
||||
}
|
||||
void GenericModule::emit_unchecked_hex(int id, inter_ti val) {
|
||||
inter_name *iname = Hierarchy::find(id);
|
||||
Hierarchy::make_available(iname);
|
||||
Emit::named_unchecked_constant_hex(iname, val);
|
||||
}
|
||||
|
|
|
@ -3,9 +3,20 @@
|
|||
Runtime support for CGs.
|
||||
|
||||
@h Generic constants.
|
||||
Here, |REPARSE_CODE| is a magic value used in //CommandParserKit// to
|
||||
signal that some code which ought to have been parsing a command has in
|
||||
fact rewritten it, so that the whole command must be re-parsed afresh.
|
||||
|
||||
=
|
||||
void RTCommandGrammars::compile_generic_constants(void) {
|
||||
target_vm *VM = Task::vm();
|
||||
if (TargetVMs::is_16_bit(VM)) {
|
||||
RTCommandGrammars::grammar_constant(REPARSE_CODE_HL, 10000);
|
||||
RTCommandGrammars::grammar_constant(DICT_WORD_SIZE_HL, 6);
|
||||
} else {
|
||||
RTCommandGrammars::grammar_constant(REPARSE_CODE_HL, 0x40000000);
|
||||
RTCommandGrammars::grammar_constant(DICT_WORD_SIZE_HL, 9);
|
||||
}
|
||||
RTCommandGrammars::grammar_constant(VERB_DIRECTIVE_REVERSE_HL, 1);
|
||||
RTCommandGrammars::grammar_constant(VERB_DIRECTIVE_SLASH_HL, 1);
|
||||
RTCommandGrammars::grammar_constant(VERB_DIRECTIVE_DIVIDER_HL, 1);
|
||||
|
@ -22,6 +33,9 @@ void RTCommandGrammars::compile_generic_constants(void) {
|
|||
RTCommandGrammars::grammar_constant(VERB_DIRECTIVE_MULTIEXCEPT_HL, 12);
|
||||
}
|
||||
|
||||
@
|
||||
|
||||
=
|
||||
inter_name *RTCommandGrammars::iname_for_I6_parser_token(cg_token *cgt) {
|
||||
switch (cgt->grammar_token_code) {
|
||||
case NOUN_TOKEN_GTC: return Hierarchy::find(VERB_DIRECTIVE_NOUN_HL);
|
||||
|
@ -39,7 +53,7 @@ inter_name *RTCommandGrammars::iname_for_I6_parser_token(cg_token *cgt) {
|
|||
|
||||
inter_name *RTCommandGrammars::grammar_constant(int N, int V) {
|
||||
inter_name *iname = Hierarchy::find(N);
|
||||
Emit::numeric_constant(iname, 1);
|
||||
Emit::numeric_constant(iname, (inter_ti) V);
|
||||
Hierarchy::make_available(iname);
|
||||
return iname;
|
||||
}
|
||||
|
|
|
@ -154,7 +154,7 @@ inter_bookmark *Site::architecture_bookmark(inter_tree *I) {
|
|||
dictionary *create_these_architectural_symbols_on_demand = NULL;
|
||||
|
||||
inter_symbol *Site::find_architectural_symbol(inter_tree *I, text_stream *N,
|
||||
inter_symbol *unchecked_kind_symbol) {
|
||||
inter_symbol *uks) {
|
||||
inter_package *arch = Site::architecture_package(I);
|
||||
inter_symbols_table *tab = Inter::Packages::scope(arch);
|
||||
inter_symbol *S = InterSymbolsTables::symbol_from_name(tab, N);
|
||||
|
@ -171,20 +171,52 @@ inter_symbol *Site::find_architectural_symbol(inter_tree *I, text_stream *N,
|
|||
Dictionaries::create(create_these_architectural_symbols_on_demand, I"Object");
|
||||
}
|
||||
if (Dictionaries::find(create_these_architectural_symbols_on_demand, N)) {
|
||||
S = InterSymbolsTables::symbol_from_name_creating(tab, N);
|
||||
S = Site::arch_constant(I, N, uks, 0);
|
||||
Inter::Symbols::annotate_i(S, VENEER_IANN, 1);
|
||||
|
||||
inter_bookmark *IBM = Site::architecture_bookmark(I);
|
||||
Produce::guard(Inter::Constant::new_numerical(IBM,
|
||||
InterSymbolsTables::id_from_symbol(Inter::Bookmarks::tree(IBM), arch, S),
|
||||
InterSymbolsTables::id_from_symbol(Inter::Bookmarks::tree(IBM), arch, unchecked_kind_symbol),
|
||||
LITERAL_IVAL, 0,
|
||||
(inter_ti) Inter::Bookmarks::baseline(IBM) + 1, NULL));
|
||||
}
|
||||
}
|
||||
return S;
|
||||
}
|
||||
|
||||
inter_symbol *Site::arch_constant(inter_tree *I, text_stream *N,
|
||||
inter_symbol *uks, inter_ti val) {
|
||||
inter_package *arch = Site::architecture_package(I);
|
||||
inter_symbols_table *tab = Inter::Packages::scope(arch);
|
||||
inter_symbol *S = InterSymbolsTables::symbol_from_name_creating(tab, N);
|
||||
Inter::Symbols::annotate_i(S, ARCHITECTURAL_IANN, 1);
|
||||
inter_bookmark *IBM = Site::architecture_bookmark(I);
|
||||
Produce::guard(Inter::Constant::new_numerical(IBM,
|
||||
InterSymbolsTables::id_from_symbol(I, arch, S),
|
||||
InterSymbolsTables::id_from_symbol(I, arch, uks),
|
||||
LITERAL_IVAL, val,
|
||||
(inter_ti) Inter::Bookmarks::baseline(IBM) + 1, NULL));
|
||||
return S;
|
||||
}
|
||||
|
||||
inter_symbol *Site::arch_constant_hex(inter_tree *I, text_stream *N,
|
||||
inter_symbol *uks, inter_ti val) {
|
||||
inter_symbol *S = Site::arch_constant(I, N, uks, val);
|
||||
Inter::Symbols::annotate_i(S, HEX_IANN, 1);
|
||||
return S;
|
||||
}
|
||||
|
||||
inter_symbol *Site::arch_constant_signed(inter_tree *I, text_stream *N,
|
||||
inter_symbol *uks, int val) {
|
||||
inter_symbol *S = Site::arch_constant(I, N, uks, (inter_ti) val);
|
||||
Inter::Symbols::annotate_i(S, SIGNED_IANN, 1);
|
||||
return S;
|
||||
}
|
||||
|
||||
@ These constants mostly have obvious meanings, but a few notes:
|
||||
|
||||
(1) |NULL|, in our runtime, is -1, and not 0 as it would be in C. This is
|
||||
emitted as "unchecked" to avoid the value being rejected as being too large,
|
||||
as it would be if it were viewed as a signed rather than unsigned integer.
|
||||
|
||||
(2) |IMPROBABLE_VALUE| is one which is unlikely even if possible to be a
|
||||
genuine I7 value. The efficiency of runtime code handling tables depends on
|
||||
how well chosen this is: it would ran badly if we chose 1, for instance.
|
||||
|
||||
@ Lastly, we define the constants |WORDSIZE|, |DEBUG| (if applicable) and
|
||||
either |TARGET_ZCODE| or |TARGET_GLULX|, as appropriate. These really now mean
|
||||
"target 16-bit" or "target 32-bit", and their names are a hangover from when
|
||||
|
@ -197,41 +229,33 @@ For now, at least, these live in the package |main/veneer|.
|
|||
|
||||
=
|
||||
void Site::make_architectural_definitions(inter_tree *I,
|
||||
inter_architecture *current_architecture, inter_symbol *unchecked_kind_symbol) {
|
||||
inter_architecture *current_architecture, inter_symbol *uks) {
|
||||
if (current_architecture == NULL) internal_error("no architecture set");
|
||||
int Z = Architectures::is_16_bit(current_architecture);
|
||||
int D = Architectures::debug_enabled(current_architecture);
|
||||
|
||||
inter_package *veneer_p = Site::architecture_package(I);
|
||||
inter_bookmark *in_veneer = Site::architecture_bookmark(I);
|
||||
inter_symbol *vi_unchecked =
|
||||
InterSymbolsTables::create_with_unique_name(
|
||||
Inter::Bookmarks::scope(in_veneer), I"K_unchecked");
|
||||
Wiring::wire_to(vi_unchecked, unchecked_kind_symbol);
|
||||
|
||||
inter_symbol *con_name = InterSymbolsTables::create_with_unique_name(
|
||||
Inter::Bookmarks::scope(in_veneer), I"WORDSIZE");
|
||||
Inter::Constant::new_numerical(in_veneer,
|
||||
InterSymbolsTables::id_from_symbol(I, veneer_p, con_name),
|
||||
InterSymbolsTables::id_from_symbol(I, veneer_p, vi_unchecked),
|
||||
LITERAL_IVAL, (Z)?2:4,
|
||||
(inter_ti) Inter::Bookmarks::baseline(in_veneer) + 1, NULL);
|
||||
inter_symbol *target_name = InterSymbolsTables::create_with_unique_name(
|
||||
Inter::Bookmarks::scope(in_veneer), (Z)?I"TARGET_ZCODE":I"TARGET_GLULX");
|
||||
Inter::Constant::new_numerical(in_veneer,
|
||||
InterSymbolsTables::id_from_symbol(I, veneer_p, target_name),
|
||||
InterSymbolsTables::id_from_symbol(I, veneer_p, vi_unchecked),
|
||||
LITERAL_IVAL, 1,
|
||||
(inter_ti) Inter::Bookmarks::baseline(in_veneer) + 1, NULL);
|
||||
if (D) {
|
||||
inter_symbol *D_name = InterSymbolsTables::create_with_unique_name(
|
||||
Inter::Bookmarks::scope(in_veneer), I"DEBUG");
|
||||
Inter::Constant::new_numerical(in_veneer,
|
||||
InterSymbolsTables::id_from_symbol(I, veneer_p, D_name),
|
||||
InterSymbolsTables::id_from_symbol(I, veneer_p, vi_unchecked),
|
||||
LITERAL_IVAL, 1,
|
||||
(inter_ti) Inter::Bookmarks::baseline(in_veneer) + 1, NULL);
|
||||
if (Z) {
|
||||
Site::arch_constant(I, I"WORDSIZE", uks, 2);
|
||||
Site::arch_constant_hex(I, I"NULL", uks, 0xffff);
|
||||
Site::arch_constant_hex(I, I"WORD_HIGHBIT", uks, 0x8000);
|
||||
Site::arch_constant_hex(I, I"WORD_NEXTTOHIGHBIT", uks, 0x4000);
|
||||
Site::arch_constant_hex(I, I"IMPROBABLE_VALUE", uks, 0x7fe3);
|
||||
Site::arch_constant(I, I"MAX_POSITIVE_NUMBER", uks, 32767);
|
||||
Site::arch_constant_signed(I, I"MIN_NEGATIVE_NUMBER", uks, -32768);
|
||||
Site::arch_constant(I, I"TARGET_ZCODE", uks, 1);
|
||||
} else {
|
||||
Site::arch_constant(I, I"WORDSIZE", uks, 4);
|
||||
Site::arch_constant_hex(I, I"NULL", uks, 0xffffffff);
|
||||
Site::arch_constant_hex(I, I"WORD_HIGHBIT", uks, 0x80000000);
|
||||
Site::arch_constant_hex(I, I"WORD_NEXTTOHIGHBIT", uks, 0x40000000);
|
||||
Site::arch_constant_hex(I, I"IMPROBABLE_VALUE", uks, 0xdeadce11);
|
||||
Site::arch_constant(I, I"MAX_POSITIVE_NUMBER", uks, 2147483647);
|
||||
Site::arch_constant_signed(I, I"MIN_NEGATIVE_NUMBER", uks, -2147483648);
|
||||
Site::arch_constant(I, I"INDIV_PROP_START", uks, 0);
|
||||
Site::arch_constant(I, I"TARGET_GLULX", uks, 1);
|
||||
}
|
||||
|
||||
if (D) Site::arch_constant(I, I"DEBUG", uks, 1);
|
||||
}
|
||||
|
||||
inter_package *Site::make_linkage_package(inter_tree *I, text_stream *name) {
|
||||
|
|
|
@ -24,6 +24,8 @@ typedef struct inter_symbol {
|
|||
inter_symbol *Inter::Symbols::new(text_stream *name, inter_symbols_table *T, inter_ti ID) {
|
||||
if (Str::len(name) == 0) internal_error("symbol cannot have empty text as identifier");
|
||||
|
||||
if (Str::eq(name, I"MAX_POSITIVE_NUMBER_1")) internal_error("MPN1");
|
||||
|
||||
inter_symbol *symb = CREATE(inter_symbol);
|
||||
symb->owning_table = T;
|
||||
symb->symbol_ID = ID;
|
||||
|
|
|
@ -152,7 +152,7 @@ void Inter::Transmigration::correct_migrant(inter_tree *I, inter_tree_node *P, v
|
|||
inter_symbol *symb = T->symbol_array[i];
|
||||
if (Wiring::is_wired(symb)) {
|
||||
inter_symbol *target = Wiring::cable_end(symb);
|
||||
if (Inter::Symbols::read_annotation(target, VENEER_IANN) > 0) {
|
||||
if (Inter::Symbols::read_annotation(target, ARCHITECTURAL_IANN) > 0) {
|
||||
Wiring::wire_to(symb,
|
||||
Site::find_architectural_symbol(ipct->destination->package_head->tree, target->symbol_name, Produce::kind_to_symbol(NULL)));
|
||||
} else if (Inter::Symbols::get_scope(target) == PLUG_ISYMS) {
|
||||
|
|
|
@ -35,6 +35,7 @@ Defining the one true set of Inter annotation codes.
|
|||
@e VERBARRAY_IANN
|
||||
@e EXPLICIT_VARIABLE_IANN
|
||||
@e TEXT_LITERAL_IANN
|
||||
@e ARCHITECTURAL_IANN
|
||||
@e VENEER_IANN
|
||||
@e SYNOPTIC_IANN
|
||||
@e I6_GLOBAL_OFFSET_IANN
|
||||
|
@ -96,6 +97,7 @@ void Inter::Canon::declare(void) {
|
|||
Inter::Annotations::form(VERBARRAY_IANN, I"__verb", FALSE);
|
||||
Inter::Annotations::form(EXPLICIT_VARIABLE_IANN, I"__explicit_variable", FALSE);
|
||||
Inter::Annotations::form(TEXT_LITERAL_IANN, I"__text_literal", FALSE);
|
||||
Inter::Annotations::form(ARCHITECTURAL_IANN, I"__architectural", FALSE);
|
||||
Inter::Annotations::form(VENEER_IANN, I"__veneer", FALSE);
|
||||
Inter::Annotations::form(SYNOPTIC_IANN, I"__synoptic", FALSE);
|
||||
Inter::Annotations::form(I6_GLOBAL_OFFSET_IANN, I"__global_offset", FALSE);
|
||||
|
|
|
@ -1141,12 +1141,16 @@ inter_symbol *CompileSplatsStage::compute_eval(pipeline_step *step,
|
|||
Here we run into, say, |MAX_ELEPHANTS|, some identifier which clearly refers
|
||||
to something defined elsewhere. If it has already been defined in the kit
|
||||
being compiled, then there's a socket of that name already, and we can use
|
||||
that as the answer. Otherwise we must assume it will be declared either later
|
||||
or in another compilation unit, so we create a plug called |MAX_ELEPHANTS|
|
||||
and let the linker stage worry about what it means later on.
|
||||
that as the answer; similarly if it's an architectural constant such as |WORDSIZE|.
|
||||
Otherwise we must assume it will be declared either later or in another
|
||||
compilation unit, so we create a plug called |MAX_ELEPHANTS| and let the
|
||||
linker stage worry about what it means later on.
|
||||
|
||||
@<This leaf is a symbol name@> =
|
||||
inter_symbol *result_s = Wiring::find_socket(I, t->material);
|
||||
inter_symbol *result_s = Site::find_architectural_symbol(I, t->material,
|
||||
RunningPipelines::get_symbol(step, unchecked_kind_RPSYM));
|
||||
if (result_s) return result_s;
|
||||
result_s = Wiring::find_socket(I, t->material);
|
||||
if (result_s) return result_s;
|
||||
return Wiring::plug(I, t->material);
|
||||
|
||||
|
|
Loading…
Reference in a new issue