mirror of
https://github.com/ganelson/inform.git
synced 2024-04-25 13:49:41 +03:00
Fix for Jira bug I7-2124
This commit is contained in:
parent
4b7ad580b7
commit
a79b56f241
|
@ -1,6 +1,6 @@
|
|||
# Inform 7
|
||||
|
||||
v10.1.0-beta+6V12 'Krypton' (23 May 2022)
|
||||
v10.1.0-beta+6V13 'Krypton' (24 May 2022)
|
||||
|
||||
## About Inform 7
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Prerelease: beta
|
||||
Build Date: 23 May 2022
|
||||
Build Number: 6V12
|
||||
Build Date: 24 May 2022
|
||||
Build Number: 6V13
|
||||
|
|
|
@ -155,7 +155,7 @@ outermost box, that is, the top level of the hierarchy.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">pack</span><span class="plain-syntax">-></span><span class="element-syntax">package_head</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="function-syntax">InterPackage::tree</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">InterPackage::tree</span></span>:<br/>Bookmarks - <a href="2-bkm.html#SP5">§5</a><br/>The Warehouse - <a href="2-tw.html#SP5">§5</a><br/>Symbols - <a href="2-sym.html#SP20">§20</a><br/>The Wiring - <a href="2-tw2.html#SP12">§12</a><br/>Transmigration - <a href="2-trn.html#SP3_1">§3.1</a>, <a href="2-trn.html#SP4_2_2">§4.2.2</a><br/>Inter in Text Files - <a href="3-iitf.html#SP5_1">§5.1</a>, <a href="3-iitf.html#SP7_1">§7.1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP13">§13</a><br/>Inter Data Types - <a href="3-idt.html#SP17_10">§17.10</a><br/>Metadata - <a href="3-mtd.html#SP6_1">§6.1</a><br/>The Package Construct - <a href="4-tpc.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="function-syntax">InterPackage::tree</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">InterPackage::tree</span></span>:<br/>Bookmarks - <a href="2-bkm.html#SP5">§5</a><br/>The Warehouse - <a href="2-tw.html#SP5">§5</a><br/>Symbols - <a href="2-sym.html#SP20">§20</a><br/>The Wiring - <a href="2-tw2.html#SP12">§12</a><br/>Transmigration - <a href="2-trn.html#SP3_1">§3.1</a>, <a href="2-trn.html#SP4_2_2">§4.2.2</a><br/>Inter in Text Files - <a href="3-iitf.html#SP5_1">§5.1</a>, <a href="3-iitf.html#SP7_1">§7.1</a><br/>Inter Value Pairs - <a href="3-ivp.html#SP13">§13</a><br/>Inter Data Types - <a href="3-idt.html#SP17_11">§17.11</a><br/>Metadata - <a href="3-mtd.html#SP6_1">§6.1</a><br/>The Package Construct - <a href="4-tpc.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">pack</span><span class="plain-syntax">-></span><span class="element-syntax">package_head</span><span class="plain-syntax">-></span><span class="element-syntax">tree</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -129,7 +129,7 @@ function is the inverse of <a href="2-pck.html#SP10" class="internal">InterPacka
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="function-syntax">InterSymbolsTable::package</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">InterSymbolsTable::package</span></span>:<br/><a href="2-st.html#SP18">§18</a>, <a href="2-st.html#SP22">§22</a><br/>Symbols - <a href="2-sym.html#SP3">§3</a><br/>Inter in Text Files - <a href="3-iitf.html#SP5_1">§5.1</a><br/>Inter Data Types - <a href="3-idt.html#SP17_10">§17.10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ST</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="function-syntax">InterSymbolsTable::package</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">InterSymbolsTable::package</span></span>:<br/><a href="2-st.html#SP18">§18</a>, <a href="2-st.html#SP22">§22</a><br/>Symbols - <a href="2-sym.html#SP3">§3</a><br/>Inter in Text Files - <a href="3-iitf.html#SP5_1">§5.1</a><br/>Inter Data Types - <a href="3-idt.html#SP17_11">§17.11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ST</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ST</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">ST</span><span class="plain-syntax">-></span><span class="element-syntax">owning_package</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -655,7 +655,7 @@ as a way of handling forward references.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">InterSymbolsTable::wire_to_URL</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">InterSymbolsTable::wire_to_URL</span></span>:<br/>Inter in Text Files - <a href="3-iitf.html#SP12_14">§12.14</a><br/>Inter Data Types - <a href="3-idt.html#SP17_10">§17.10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">URL</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">InterSymbolsTable::wire_to_URL</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">InterSymbolsTable::wire_to_URL</span></span>:<br/>Inter in Text Files - <a href="3-iitf.html#SP12_14">§12.14</a><br/>Inter Data Types - <a href="3-idt.html#SP17_11">§17.11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">URL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><a href="2-st.html#SP19" class="function-link"><span class="function-syntax">InterSymbolsTable::URL_to_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">URL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">S</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
|
|
|
@ -90,6 +90,7 @@ invalidate existing Inter binary files, necessitating a bump of <a href="1-tiv.h
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEXT_ITCONC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">ENUM_ITCONC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">LIST_ITCONC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_ITCONC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">COLUMN_ITCONC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_ITCONC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">FUNCTION_ITCONC</span>
|
||||
|
@ -145,6 +146,7 @@ initialise it:
|
|||
<span class="plain-syntax"> </span><a href="3-idt.html#SP5" class="function-link"><span class="function-syntax">InterTypes::init_con</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TEXT_ITCONC</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"text"</span><span class="plain-syntax">, -2147483648, </span><span class="constant-syntax">2147483647</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP5" class="function-link"><span class="function-syntax">InterTypes::init_con</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ENUM_ITCONC</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"enum"</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">2147483647</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP5" class="function-link"><span class="function-syntax">InterTypes::init_con</span></a><span class="plain-syntax">(</span><span class="constant-syntax">LIST_ITCONC</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"list"</span><span class="plain-syntax">, -2147483648, </span><span class="constant-syntax">2147483647</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</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-idt.html#SP5" class="function-link"><span class="function-syntax">InterTypes::init_con</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_ITCONC</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"activity"</span><span class="plain-syntax">, -2147483648, </span><span class="constant-syntax">2147483647</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</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-idt.html#SP5" class="function-link"><span class="function-syntax">InterTypes::init_con</span></a><span class="plain-syntax">(</span><span class="constant-syntax">COLUMN_ITCONC</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"column"</span><span class="plain-syntax">, -2147483648, </span><span class="constant-syntax">2147483647</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</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-idt.html#SP5" class="function-link"><span class="function-syntax">InterTypes::init_con</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_ITCONC</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"table"</span><span class="plain-syntax">, -2147483648, </span><span class="constant-syntax">2147483647</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</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-idt.html#SP5" class="function-link"><span class="function-syntax">InterTypes::init_con</span></a><span class="plain-syntax">(</span><span class="constant-syntax">FUNCTION_ITCONC</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"function"</span><span class="plain-syntax">, -2147483648, </span><span class="constant-syntax">2147483647</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
|
@ -188,7 +190,7 @@ that it's fine for textual lookups to be relatively slow.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">inter_type_constructor</span><span class="plain-syntax"> *</span><span class="function-syntax">InterTypes::constructor_from_name</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">InterTypes::constructor_from_name</span></span>:<br/><a href="3-idt.html#SP17_9">§17.9</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_type_constructor</span><span class="plain-syntax"> *</span><span class="function-syntax">InterTypes::constructor_from_name</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">InterTypes::constructor_from_name</span></span>:<br/><a href="3-idt.html#SP17_10">§17.10</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="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">ID</span><span class="plain-syntax"> = </span><span class="constant-syntax">MIN_INTER_TYPE_CONSTRUCTOR</span><span class="plain-syntax">; </span><span class="identifier-syntax">ID</span><span class="plain-syntax"> <= </span><span class="constant-syntax">MAX_INTER_TYPE_CONSTRUCTOR</span><span class="plain-syntax">; </span><span class="identifier-syntax">ID</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">itc</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">inter_type_constructors</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::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">itc</span><span class="plain-syntax">-></span><span class="element-syntax">constructor_keyword</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">))</span>
|
||||
|
@ -266,7 +268,7 @@ type name, and so can be stored in an <a href="3-idt.html#SP9" class="internal">
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::from_constructor_code</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">InterTypes::from_constructor_code</span></span>:<br/><a href="3-idt.html#SP12">§12</a>, <a href="3-idt.html#SP14">§14</a>, <a href="3-idt.html#SP17_7">§17.7</a>, <a href="3-idt.html#SP18">§18</a><br/>The Typename Construct - <a href="4-ttc.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">constructor_code</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::from_constructor_code</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">InterTypes::from_constructor_code</span></span>:<br/><a href="3-idt.html#SP12">§12</a>, <a href="3-idt.html#SP14">§14</a>, <a href="3-idt.html#SP17_8">§17.8</a>, <a href="3-idt.html#SP18">§18</a><br/>The Typename Construct - <a href="4-ttc.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">constructor_code</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-idt.html#SP2" class="function-link"><span class="function-syntax">InterTypes::is_valid_constructor_code</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">constructor_code</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"invalid constructor code"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">;</span>
|
||||
|
@ -275,7 +277,7 @@ type name, and so can be stored in an <a href="3-idt.html#SP9" class="internal">
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::from_type_name</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">InterTypes::from_type_name</span></span>:<br/><a href="3-idt.html#SP14">§14</a>, <a href="3-idt.html#SP17_10">§17.10</a>, <a href="3-idt.html#SP19">§19</a><br/>The Instance Construct - <a href="4-tic2.html#SP3">§3</a><br/>The Permission Construct - <a href="4-tpc3.html#SP3">§3</a><br/>The Typename Construct - <a href="4-ttc.html#SP3">§3</a>, <a href="4-ttc.html#SP4">§4</a>, <a href="4-ttc.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::from_type_name</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">InterTypes::from_type_name</span></span>:<br/><a href="3-idt.html#SP14">§14</a>, <a href="3-idt.html#SP17_11">§17.11</a>, <a href="3-idt.html#SP19">§19</a><br/>The Instance Construct - <a href="4-tic2.html#SP3">§3</a><br/>The Permission Construct - <a href="4-tpc3.html#SP3">§3</a><br/>The Typename Construct - <a href="4-ttc.html#SP3">§3</a>, <a href="4-ttc.html#SP4">§4</a>, <a href="4-ttc.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">.</span><span class="element-syntax">underlying_constructor</span><span class="plain-syntax"> = </span><a href="4-ttc.html#SP7" class="function-link"><span class="function-syntax">TypenameInstruction::constructor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
|
||||
|
@ -309,7 +311,7 @@ in which all data is <span class="extract"><span class="extract-syntax">unchecke
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::unchecked</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">InterTypes::unchecked</span></span>:<br/><a href="3-idt.html#SP10">§10</a>, <a href="3-idt.html#SP13">§13</a>, <a href="3-idt.html#SP14">§14</a>, <a href="3-idt.html#SP17_6">§17.6</a>, <a href="3-idt.html#SP18">§18</a>, <a href="3-idt.html#SP23">§23</a><br/>The Instance Construct - <a href="4-tic2.html#SP4">§4</a>, <a href="4-tic2.html#SP4_2">§4.2</a><br/>The Package Construct - <a href="4-tpc.html#SP6">§6</a><br/>The Property Construct - <a href="4-tpc6.html#SP4">§4</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">§3</a><br/>The Typename Construct - <a href="4-ttc.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::unchecked</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">InterTypes::unchecked</span></span>:<br/><a href="3-idt.html#SP10">§10</a>, <a href="3-idt.html#SP13">§13</a>, <a href="3-idt.html#SP14">§14</a>, <a href="3-idt.html#SP17_7">§17.7</a>, <a href="3-idt.html#SP18">§18</a>, <a href="3-idt.html#SP23">§23</a><br/>The Instance Construct - <a href="4-tic2.html#SP4">§4</a>, <a href="4-tic2.html#SP4_2">§4.2</a><br/>The Package Construct - <a href="4-tpc.html#SP6">§6</a><br/>The Property Construct - <a href="4-tpc6.html#SP4">§4</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP3">§3</a><br/>The Typename Construct - <a href="4-ttc.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-idt.html#SP10" class="function-link"><span class="function-syntax">InterTypes::from_constructor_code</span></a><span class="plain-syntax">(</span><span class="constant-syntax">UNCHECKED_ITCONC</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
@ -406,7 +408,7 @@ Inter because it's primarily designed as a language for programs to write.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">results</span><span class="plain-syntax">-></span><span class="element-syntax">operand_TIDs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">results</span><span class="plain-syntax">-></span><span class="element-syntax">default_operand_TIDs</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::add_operand_to_isstd</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">InterTypes::add_operand_to_isstd</span></span>:<br/><a href="3-idt.html#SP17_1">§17.1</a>, <a href="3-idt.html#SP17_2">§17.2</a>, <a href="3-idt.html#SP17_3">§17.3</a>, <a href="3-idt.html#SP17_4">§17.4</a>, <a href="3-idt.html#SP17_5">§17.5</a>, <a href="3-idt.html#SP17_6">§17.6</a>, <a href="3-idt.html#SP17_7">§17.7</a>, <a href="3-idt.html#SP17_8">§17.8</a>, <a href="3-idt.html#SP17_10">§17.10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_semisimple_type_description</span><span class="plain-syntax"> *</span><span class="identifier-syntax">results</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::add_operand_to_isstd</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">InterTypes::add_operand_to_isstd</span></span>:<br/><a href="3-idt.html#SP17_1">§17.1</a>, <a href="3-idt.html#SP17_2">§17.2</a>, <a href="3-idt.html#SP17_3">§17.3</a>, <a href="3-idt.html#SP17_4">§17.4</a>, <a href="3-idt.html#SP17_5">§17.5</a>, <a href="3-idt.html#SP17_6">§17.6</a>, <a href="3-idt.html#SP17_7">§17.7</a>, <a href="3-idt.html#SP17_8">§17.8</a>, <a href="3-idt.html#SP17_9">§17.9</a>, <a href="3-idt.html#SP17_11">§17.11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_semisimple_type_description</span><span class="plain-syntax"> *</span><span class="identifier-syntax">results</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">TID</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP15" class="function-link"><span class="function-syntax">InterTypes::to_TID</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">type</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">results</span><span class="plain-syntax">-></span><span class="element-syntax">arity</span><span class="plain-syntax"> >= </span><span class="identifier-syntax">results</span><span class="plain-syntax">-></span><span class="element-syntax">capacity</span><span class="plain-syntax">) {</span>
|
||||
|
@ -459,14 +461,15 @@ prevents a memory leak if really large results were returned.
|
|||
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_1" class="named-paragraph-link"><span class="named-paragraph">Parse rulebook syntax</span><span class="named-paragraph-number">17.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_2" class="named-paragraph-link"><span class="named-paragraph">Parse list syntax</span><span class="named-paragraph-number">17.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_3" class="named-paragraph-link"><span class="named-paragraph">Parse column syntax</span><span class="named-paragraph-number">17.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_4" class="named-paragraph-link"><span class="named-paragraph">Parse table syntax</span><span class="named-paragraph-number">17.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_5" class="named-paragraph-link"><span class="named-paragraph">Parse description syntax</span><span class="named-paragraph-number">17.5</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_6" class="named-paragraph-link"><span class="named-paragraph">Parse relation syntax</span><span class="named-paragraph-number">17.6</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_7" class="named-paragraph-link"><span class="named-paragraph">Parse rule or function syntax</span><span class="named-paragraph-number">17.7</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_8" class="named-paragraph-link"><span class="named-paragraph">Parse struct syntax</span><span class="named-paragraph-number">17.8</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_9" class="named-paragraph-link"><span class="named-paragraph">Parse bare constructor-name syntax</span><span class="named-paragraph-number">17.9</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_10" class="named-paragraph-link"><span class="named-paragraph">Parse bare typename syntax</span><span class="named-paragraph-number">17.10</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_3" class="named-paragraph-link"><span class="named-paragraph">Parse activity syntax</span><span class="named-paragraph-number">17.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_4" class="named-paragraph-link"><span class="named-paragraph">Parse column syntax</span><span class="named-paragraph-number">17.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_5" class="named-paragraph-link"><span class="named-paragraph">Parse table syntax</span><span class="named-paragraph-number">17.5</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_6" class="named-paragraph-link"><span class="named-paragraph">Parse description syntax</span><span class="named-paragraph-number">17.6</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_7" class="named-paragraph-link"><span class="named-paragraph">Parse relation syntax</span><span class="named-paragraph-number">17.7</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_8" class="named-paragraph-link"><span class="named-paragraph">Parse rule or function syntax</span><span class="named-paragraph-number">17.8</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_9" class="named-paragraph-link"><span class="named-paragraph">Parse struct syntax</span><span class="named-paragraph-number">17.9</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_10" class="named-paragraph-link"><span class="named-paragraph">Parse bare constructor-name syntax</span><span class="named-paragraph-number">17.10</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-idt.html#SP17_11" class="named-paragraph-link"><span class="named-paragraph">Parse bare typename syntax</span><span class="named-paragraph-number">17.11</span></a></span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Regexp::dispose_of</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-ie.html#SP4" class="function-link"><span class="function-syntax">InterErrors::quoted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"no such data type"</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">);</span>
|
||||
|
@ -498,7 +501,20 @@ prevents a memory leak if really large results were returned.
|
|||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-idt.html#SP17">§17</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP17_3" class="paragraph-anchor"></a><b>§17.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse column syntax</span><span class="named-paragraph-number">17.3</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP17_3" class="paragraph-anchor"></a><b>§17.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse activity syntax</span><span class="named-paragraph-number">17.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"activity on (%C+)"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">results</span><span class="plain-syntax">-></span><span class="element-syntax">constructor_code</span><span class="plain-syntax"> = </span><span class="constant-syntax">ACTIVITY_ITCONC</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="identifier-syntax">conts_type</span><span class="plain-syntax"> = </span><a href="3-idt.html#SP18" class="function-link"><span class="function-syntax">InterTypes::parse_simple</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0], &</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP16" class="function-link"><span class="function-syntax">InterTypes::add_operand_to_isstd</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">results</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">conts_type</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Regexp::dispose_of</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</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">E</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-idt.html#SP17">§17</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP17_4" class="paragraph-anchor"></a><b>§17.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse column syntax</span><span class="named-paragraph-number">17.4</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -511,7 +527,7 @@ prevents a memory leak if really large results were returned.
|
|||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-idt.html#SP17">§17</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP17_4" class="paragraph-anchor"></a><b>§17.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse table syntax</span><span class="named-paragraph-number">17.4</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP17_5" class="paragraph-anchor"></a><b>§17.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse table syntax</span><span class="named-paragraph-number">17.5</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -524,7 +540,7 @@ prevents a memory leak if really large results were returned.
|
|||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-idt.html#SP17">§17</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP17_5" class="paragraph-anchor"></a><b>§17.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse description syntax</span><span class="named-paragraph-number">17.5</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP17_6" class="paragraph-anchor"></a><b>§17.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse description syntax</span><span class="named-paragraph-number">17.6</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -537,7 +553,7 @@ prevents a memory leak if really large results were returned.
|
|||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-idt.html#SP17">§17</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP17_6" class="paragraph-anchor"></a><b>§17.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse relation syntax</span><span class="named-paragraph-number">17.6</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP17_7" class="paragraph-anchor"></a><b>§17.7. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse relation syntax</span><span class="named-paragraph-number">17.7</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -556,7 +572,7 @@ prevents a memory leak if really large results were returned.
|
|||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-idt.html#SP17">§17</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP17_7" class="paragraph-anchor"></a><b>§17.7. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse rule or function syntax</span><span class="named-paragraph-number">17.7</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP17_8" class="paragraph-anchor"></a><b>§17.8. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse rule or function syntax</span><span class="named-paragraph-number">17.8</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -592,7 +608,7 @@ prevents a memory leak if really large results were returned.
|
|||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-idt.html#SP17">§17</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP17_8" class="paragraph-anchor"></a><b>§17.8. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse struct syntax</span><span class="named-paragraph-number">17.8</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP17_9" class="paragraph-anchor"></a><b>§17.9. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse struct syntax</span><span class="named-paragraph-number">17.9</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -612,7 +628,7 @@ prevents a memory leak if really large results were returned.
|
|||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-idt.html#SP17">§17</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP17_9" class="paragraph-anchor"></a><b>§17.9. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse bare constructor-name syntax</span><span class="named-paragraph-number">17.9</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP17_10" class="paragraph-anchor"></a><b>§17.10. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse bare constructor-name syntax</span><span class="named-paragraph-number">17.10</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -626,7 +642,7 @@ prevents a memory leak if really large results were returned.
|
|||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-idt.html#SP17">§17</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP17_10" class="paragraph-anchor"></a><b>§17.10. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse bare typename syntax</span><span class="named-paragraph-number">17.10</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP17_11" class="paragraph-anchor"></a><b>§17.11. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse bare typename syntax</span><span class="named-paragraph-number">17.11</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -658,7 +674,7 @@ useful error message in response to a semisimple but not simple piece of syntax.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::parse_simple</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">InterTypes::parse_simple</span></span>:<br/><a href="3-idt.html#SP17_1">§17.1</a>, <a href="3-idt.html#SP17_2">§17.2</a>, <a href="3-idt.html#SP17_3">§17.3</a>, <a href="3-idt.html#SP17_4">§17.4</a>, <a href="3-idt.html#SP17_5">§17.5</a>, <a href="3-idt.html#SP17_6">§17.6</a>, <a href="3-idt.html#SP17_7">§17.7</a>, <a href="3-idt.html#SP17_8">§17.8</a><br/>The Constant Construct - <a href="4-tcc2.html#SP6_1">§6.1</a><br/>The Instance Construct - <a href="4-tic2.html#SP4_1">§4.1</a><br/>The Package Construct - <a href="4-tpc.html#SP6">§6</a><br/>The Property Construct - <a href="4-tpc6.html#SP4">§4</a><br/>The Variable Construct - <a href="4-tvc.html#SP4">§4</a><br/>The Cast Construct - <a href="5-tcc.html#SP4">§4</a><br/>The Local Construct - <a href="5-tlc3.html#SP4">§4</a><br/>The Ref Construct - <a href="5-trc.html#SP4">§4</a><br/>The Val Construct - <a href="5-tvc.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">inter_type</span><span class="plain-syntax"> </span><span class="function-syntax">InterTypes::parse_simple</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">InterTypes::parse_simple</span></span>:<br/><a href="3-idt.html#SP17_1">§17.1</a>, <a href="3-idt.html#SP17_2">§17.2</a>, <a href="3-idt.html#SP17_3">§17.3</a>, <a href="3-idt.html#SP17_4">§17.4</a>, <a href="3-idt.html#SP17_5">§17.5</a>, <a href="3-idt.html#SP17_6">§17.6</a>, <a href="3-idt.html#SP17_7">§17.7</a>, <a href="3-idt.html#SP17_8">§17.8</a>, <a href="3-idt.html#SP17_9">§17.9</a><br/>The Constant Construct - <a href="4-tcc2.html#SP6_1">§6.1</a><br/>The Instance Construct - <a href="4-tic2.html#SP4_1">§4.1</a><br/>The Package Construct - <a href="4-tpc.html#SP6">§6</a><br/>The Property Construct - <a href="4-tpc6.html#SP4">§4</a><br/>The Variable Construct - <a href="4-tvc.html#SP4">§4</a><br/>The Cast Construct - <a href="5-tcc.html#SP4">§4</a><br/>The Local Construct - <a href="5-tlc3.html#SP4">§4</a><br/>The Ref Construct - <a href="5-trc.html#SP4">§4</a><br/>The Val Construct - <a href="5-tvc.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_semisimple_type_description</span><span class="plain-syntax"> </span><span class="identifier-syntax">parsed_description</span><span class="plain-syntax">;</span>
|
||||
|
@ -722,6 +738,10 @@ just print that name, <span class="extract"><span class="extract-syntax">K_whate
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" of "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP19" class="function-link"><span class="function-syntax">InterTypes::write_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="3-idt.html#SP13" class="function-link"><span class="function-syntax">InterTypes::type_operand</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">ACTIVITY_ITCONC:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" on "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP19" class="function-link"><span class="function-syntax">InterTypes::write_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="3-idt.html#SP13" class="function-link"><span class="function-syntax">InterTypes::type_operand</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">RELATION_ITCONC:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" of "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-idt.html#SP19" class="function-link"><span class="function-syntax">InterTypes::write_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="3-idt.html#SP13" class="function-link"><span class="function-syntax">InterTypes::type_operand</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">type</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">));</span>
|
||||
|
|
|
@ -116,7 +116,7 @@ of ways.)
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">InterErrors::quoted</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">InterErrors::quoted</span></span>:<br/>Annotations - <a href="2-ann.html#SP15">§15</a><br/>Inter Constructs - <a href="3-ic.html#SP7">§7</a><br/>Inter in Text Files - <a href="3-iitf.html#SP4">§4</a>, <a href="3-iitf.html#SP5">§5</a>, <a href="3-iitf.html#SP5_1">§5.1</a>, <a href="3-iitf.html#SP5_2">§5.2</a>, <a href="3-iitf.html#SP6">§6</a>, <a href="3-iitf.html#SP7_1">§7.1</a>, <a href="3-iitf.html#SP11">§11</a>, <a href="3-iitf.html#SP12">§12</a>, <a href="3-iitf.html#SP12_2">§12.2</a><br/>Inter Data Types - <a href="3-idt.html#SP17">§17</a>, <a href="3-idt.html#SP17_9">§17.9</a>, <a href="3-idt.html#SP17_10">§17.10</a>, <a href="3-idt.html#SP18">§18</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP7">§7</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP4">§4</a><br/>The Typename Construct - <a href="4-ttc.html#SP4">§4</a><br/>The Inv Construct - <a href="5-tic.html#SP7_1">§7.1</a>, <a href="5-tic.html#SP7_3">§7.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">err</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">quote</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="function-syntax">InterErrors::quoted</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">InterErrors::quoted</span></span>:<br/>Annotations - <a href="2-ann.html#SP15">§15</a><br/>Inter Constructs - <a href="3-ic.html#SP7">§7</a><br/>Inter in Text Files - <a href="3-iitf.html#SP4">§4</a>, <a href="3-iitf.html#SP5">§5</a>, <a href="3-iitf.html#SP5_1">§5.1</a>, <a href="3-iitf.html#SP5_2">§5.2</a>, <a href="3-iitf.html#SP6">§6</a>, <a href="3-iitf.html#SP7_1">§7.1</a>, <a href="3-iitf.html#SP11">§11</a>, <a href="3-iitf.html#SP12">§12</a>, <a href="3-iitf.html#SP12_2">§12.2</a><br/>Inter Data Types - <a href="3-idt.html#SP17">§17</a>, <a href="3-idt.html#SP17_10">§17.10</a>, <a href="3-idt.html#SP17_11">§17.11</a>, <a href="3-idt.html#SP18">§18</a><br/>The Primitive Construct - <a href="4-tpc5.html#SP7">§7</a><br/>The PropertyValue Construct - <a href="4-tpc7.html#SP4">§4</a><br/>The Typename Construct - <a href="4-ttc.html#SP4">§4</a><br/>The Inv Construct - <a href="5-tic.html#SP7_1">§7.1</a>, <a href="5-tic.html#SP7_3">§7.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">err</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">quote</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iem</span><span class="plain-syntax"> = </span><a href="3-ie.html#SP4" class="function-link"><span class="function-syntax">InterErrors::plain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">err</span><span class="plain-syntax">, </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">iem</span><span class="plain-syntax">-></span><span class="element-syntax">error_quote</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">quote</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">iem</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -257,7 +257,7 @@ enables us to tell if it's, e.g., a variable, defined by <span class="extract"><
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">construct</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-iitf.html#SP5" class="function-link"><span class="function-syntax">TextualInter::find_symbol_in_table</span></a><span class="plain-syntax">(</span><a href="2-bkm.html#SP7" class="function-link"><span class="function-syntax">InterBookmark::scope</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">eloc</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">construct</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">TextualInter::find_symbol_in_table</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">TextualInter::find_symbol_in_table</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP17_10">§17.10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">TextualInter::find_symbol_in_table</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">TextualInter::find_symbol_in_table</span></span>:<br/>Inter Data Types - <a href="3-idt.html#SP17_11">§17.11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_symbols_table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_location</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eloc</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="constant-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">construct</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_error_message</span><span class="plain-syntax"> **</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -429,10 +429,10 @@ used, but <span class="extract"><span class="extract-syntax">void</span></span>
|
|||
must be at least one of these, so <span class="extract"><span class="extract-syntax">struct void</span></span> is not allowed.
|
||||
</li><li>● <span class="extract"><span class="extract-syntax">enum</span></span>, for which see below;
|
||||
</li><li>● and then a raft of constructions convenient for Inform but which Inter
|
||||
really knows nothing about: <span class="extract"><span class="extract-syntax">column of T</span></span>, <span class="extract"><span class="extract-syntax">table of T</span></span>, <span class="extract"><span class="extract-syntax">relation of T1 to T2</span></span>,
|
||||
<span class="extract"><span class="extract-syntax">description of T</span></span>, <span class="extract"><span class="extract-syntax">rulebook of T</span></span>, and <span class="extract"><span class="extract-syntax">rule T1 -> T2</span></span>. Perhaps these ought
|
||||
to work via a general way for users to create new constructors, but for now
|
||||
they are hard-wired. They do nothing except to be distinct from each other,
|
||||
really knows nothing about: <span class="extract"><span class="extract-syntax">activity on T</span></span>, <span class="extract"><span class="extract-syntax">column of T</span></span>, <span class="extract"><span class="extract-syntax">table of T</span></span>,
|
||||
<span class="extract"><span class="extract-syntax">relation of T1 to T2</span></span>, <span class="extract"><span class="extract-syntax">description of T</span></span>, <span class="extract"><span class="extract-syntax">rulebook of T</span></span>, and <span class="extract"><span class="extract-syntax">rule T1 -> T2</span></span>.
|
||||
Perhaps these ought to work via a general way for users to create new constructors,
|
||||
but for now they are hard-wired. They do nothing except to be distinct from each other,
|
||||
so that Inform can label its data.
|
||||
</li></ul>
|
||||
<p class="commentary">Inter applies the usual rules of covariance and contravariance when matching
|
||||
|
|
|
@ -148,8 +148,8 @@ checks that we aren't doing that:
|
|||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Behaviour::definite</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">Kinds::Behaviour::definite</span></span>:<br/>Star Templates - <a href="4-st.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">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="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">arity</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">arity</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">arity</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">arity</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-uk.html#SP4" class="function-link"><span class="function-syntax">Kinds::Behaviour::definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">kc_args</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
|
@ -160,15 +160,15 @@ checks that we aren't doing that:
|
|||
<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">construct</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_KIND_VARIABLE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="identifier-syntax">construct</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_NIL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">arity</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">arity</span><span class="plain-syntax"> = </span><a href="4-kc2.html#SP15" class="function-link"><span class="function-syntax">KindConstructors::arity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span 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="element-syntax">construct</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_TUPLE_ENTRY</span><span class="plain-syntax">) && (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">kc_args</span><span class="plain-syntax">[1], </span><span class="identifier-syntax">K_void</span><span class="plain-syntax">))) </span><span class="identifier-syntax">arity</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="identifier-syntax">construct</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_phrase</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">arity</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_phrase</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_activity</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">arity</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">kc_args</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">], </span><span class="identifier-syntax">K_nil</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="2-uk.html#SP4" class="function-link"><span class="function-syntax">Kinds::Behaviour::semidefinite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">kc_args</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">arity</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">arity</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-uk.html#SP4" class="function-link"><span class="function-syntax">Kinds::Behaviour::semidefinite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">kc_args</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
|
@ -233,11 +233,12 @@ source text.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">icon</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">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_description</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-kd.html#SP9_2" class="named-paragraph-link"><span class="named-paragraph">Run out inter kind for description</span><span class="named-paragraph-number">9.2</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_list_of</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-kd.html#SP9_1" class="named-paragraph-link"><span class="named-paragraph">Run out inter kind for list</span><span class="named-paragraph-number">9.1</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_phrase</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-kd.html#SP9_5" class="named-paragraph-link"><span class="named-paragraph">Run out inter kind for phrase</span><span class="named-paragraph-number">9.5</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_rule</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-kd.html#SP9_6" class="named-paragraph-link"><span class="named-paragraph">Run out inter kind for rule</span><span class="named-paragraph-number">9.6</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_rulebook</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-kd.html#SP9_7" class="named-paragraph-link"><span class="named-paragraph">Run out inter kind for rulebook</span><span class="named-paragraph-number">9.7</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_phrase</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-kd.html#SP9_6" class="named-paragraph-link"><span class="named-paragraph">Run out inter kind for phrase</span><span class="named-paragraph-number">9.6</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_rule</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-kd.html#SP9_7" class="named-paragraph-link"><span class="named-paragraph">Run out inter kind for rule</span><span class="named-paragraph-number">9.7</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_rulebook</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-kd.html#SP9_8" class="named-paragraph-link"><span class="named-paragraph">Run out inter kind for rulebook</span><span class="named-paragraph-number">9.8</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_table_column</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-kd.html#SP9_3" class="named-paragraph-link"><span class="named-paragraph">Run out inter kind for column</span><span class="named-paragraph-number">9.3</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_relation</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-kd.html#SP9_4" class="named-paragraph-link"><span class="named-paragraph">Run out inter kind for relation</span><span class="named-paragraph-number">9.4</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">CON_activity</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-kd.html#SP9_5" class="named-paragraph-link"><span class="named-paragraph">Run out inter kind for activity</span><span class="named-paragraph-number">9.5</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Unfortunate kind is: %u\n"</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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"unable to represent kind in inter"</span><span class="plain-syntax">);</span>
|
||||
|
@ -282,7 +283,16 @@ source text.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">icon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RELATION_ITCONC</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-kd.html#SP9">§9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_5" class="paragraph-anchor"></a><b>§9.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Run out inter kind for phrase</span><span class="named-paragraph-number">9.5</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP9_5" class="paragraph-anchor"></a><b>§9.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Run out inter kind for activity</span><span class="named-paragraph-number">9.5</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">arity</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[0] = </span><span class="identifier-syntax">Kinds::unary_construction_material</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">icon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ACTIVITY_ITCONC</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-kd.html#SP9">§9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_6" class="paragraph-anchor"></a><b>§9.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Run out inter kind for phrase</span><span class="named-paragraph-number">9.6</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -300,7 +310,7 @@ source text.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">operands</span><span class="plain-syntax">[</span><span class="identifier-syntax">arity</span><span class="plain-syntax">++] = </span><span class="identifier-syntax">result</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-kd.html#SP9">§9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_6" class="paragraph-anchor"></a><b>§9.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Run out inter kind for rule</span><span class="named-paragraph-number">9.6</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP9_7" class="paragraph-anchor"></a><b>§9.7. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Run out inter kind for rule</span><span class="named-paragraph-number">9.7</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -309,7 +319,7 @@ source text.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">icon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RULE_ITCONC</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-kd.html#SP9">§9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_7" class="paragraph-anchor"></a><b>§9.7. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Run out inter kind for rulebook</span><span class="named-paragraph-number">9.7</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP9_8" class="paragraph-anchor"></a><b>§9.8. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Run out inter kind for rulebook</span><span class="named-paragraph-number">9.8</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
|
|
@ -1,47 +1,47 @@
|
|||
Total memory consumption was 129458K = 126 MB
|
||||
Total memory consumption was 123375K = 120 MB
|
||||
|
||||
---- was used for 2044964 objects, in 362887 frames in 0 x 800K = 0K = 0 MB:
|
||||
|
||||
31.5% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
|
||||
19.5% text_stream_array 4605 x 100 = 460500 objects, 25935360 bytes
|
||||
18.3% linked_list 43461 objects, 24338160 bytes
|
||||
10.6% inter_symbol_array 132 x 1024 = 135168 objects, 14061696 bytes
|
||||
9.9% inter_error_stash_array 101 x 1024 = 103424 objects, 13241504 bytes
|
||||
7.8% parse_node 129722 objects, 10377760 bytes
|
||||
5.6% verb_conjugation 160 objects, 7425280 bytes
|
||||
4.1% parse_node_annotation_array 346 x 500 = 173000 objects, 5547072 bytes
|
||||
2.5% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes
|
||||
2.4% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes
|
||||
1.9% kind_array 66 x 1000 = 66000 objects, 2642112 bytes
|
||||
1.5% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes
|
||||
33.0% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
|
||||
20.5% text_stream_array 4605 x 100 = 460500 objects, 25935360 bytes
|
||||
19.2% linked_list 43461 objects, 24338160 bytes
|
||||
11.1% inter_symbol_array 132 x 1024 = 135168 objects, 14061696 bytes
|
||||
10.4% inter_error_stash_array 101 x 1024 = 103424 objects, 13241504 bytes
|
||||
8.2% parse_node 129722 objects, 10377760 bytes
|
||||
5.8% verb_conjugation 160 objects, 7425280 bytes
|
||||
4.3% parse_node_annotation_array 346 x 500 = 173000 objects, 5547072 bytes
|
||||
2.6% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes
|
||||
2.5% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes
|
||||
2.0% kind_array 66 x 1000 = 66000 objects, 2642112 bytes
|
||||
1.6% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes
|
||||
1.5% inter_schema_token 13969 objects, 2011536 bytes
|
||||
1.4% package_request 21153 objects, 1861464 bytes
|
||||
1.3% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes
|
||||
1.1% dict_entry_array 470 x 100 = 47000 objects, 1519040 bytes
|
||||
1.4% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes
|
||||
1.2% dict_entry_array 470 x 100 = 47000 objects, 1519040 bytes
|
||||
1.1% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes
|
||||
1.1% inter_symbols_table 26592 objects, 1489152 bytes
|
||||
1.0% i6_schema_array 23 x 100 = 2300 objects, 1380736 bytes
|
||||
0.9% scan_directory 314 objects, 1296192 bytes
|
||||
0.9% inter_package 26592 objects, 1276416 bytes
|
||||
1.0% scan_directory 314 objects, 1296192 bytes
|
||||
1.0% inter_package 26592 objects, 1276416 bytes
|
||||
0.8% map_data 671 objects, 1127280 bytes
|
||||
0.8% id_body 942 objects, 1077648 bytes
|
||||
0.7% adjective_meaning 202 objects, 1000304 bytes
|
||||
0.7% excerpt_meaning 3102 objects, 967824 bytes
|
||||
0.6% production 3878 objects, 899696 bytes
|
||||
0.7% production 3878 objects, 899696 bytes
|
||||
0.6% ptoken 8397 objects, 873288 bytes
|
||||
0.6% grammatical_usage 3613 objects, 867120 bytes
|
||||
0.6% individual_form 2563 objects, 861168 bytes
|
||||
0.6% inter_schema_node 8920 objects, 856320 bytes
|
||||
0.4% unary_predicate_array 16 x 1000 = 16000 objects, 640512 bytes
|
||||
0.5% unary_predicate_array 16 x 1000 = 16000 objects, 640512 bytes
|
||||
0.3% local_variable_array 47 x 100 = 4700 objects, 452704 bytes
|
||||
0.2% verb_usage 1128 objects, 388032 bytes
|
||||
0.3% verb_usage 1128 objects, 388032 bytes
|
||||
0.2% rule 470 objects, 368480 bytes
|
||||
0.2% dictionary 7520 objects, 360960 bytes
|
||||
0.2% verb_form 386 objects, 348944 bytes
|
||||
0.2% noun 2382 objects, 285840 bytes
|
||||
0.2% compilation_subtask 3355 objects, 268400 bytes
|
||||
0.1% inter_annotation_array 2 x 8192 = 16384 objects, 262208 bytes
|
||||
0.1% inference_subject 666 objects, 261072 bytes
|
||||
0.2% inter_annotation_array 2 x 8192 = 16384 objects, 262208 bytes
|
||||
0.2% inference_subject 666 objects, 261072 bytes
|
||||
0.1% vanilla_function 3683 objects, 235712 bytes
|
||||
0.1% binary_predicate 322 objects, 170016 bytes
|
||||
0.1% hierarchy_location 1122 objects, 161568 bytes
|
||||
|
@ -237,23 +237,23 @@ Total memory consumption was 129458K = 126 MB
|
|||
|
||||
100.0% was used for memory not allocated for objects:
|
||||
|
||||
59.7% text stream storage 79163588 bytes in 478472 claims
|
||||
3.9% dictionary storage 5228544 bytes in 7520 claims
|
||||
57.7% text stream storage 72934504 bytes in 478023 claims
|
||||
4.1% dictionary storage 5228544 bytes in 7520 claims
|
||||
---- sorting 1448 bytes in 149 claims
|
||||
5.4% source text 7200000 bytes in 3 claims
|
||||
8.1% source text details 10800000 bytes in 2 claims
|
||||
0.1% documentation fragments 262144 bytes in 1 claim
|
||||
5.6% source text 7200000 bytes in 3 claims
|
||||
8.5% source text details 10800000 bytes in 2 claims
|
||||
0.2% documentation fragments 262144 bytes in 1 claim
|
||||
---- linguistic stock array 81920 bytes in 2 claims
|
||||
---- small word set array 105600 bytes in 22 claims
|
||||
3.4% inter symbols storage 4520272 bytes in 27949 claims
|
||||
12.6% inter bytecode storage 16767680 bytes in 14 claims
|
||||
4.6% inter links storage 6222976 bytes in 11 claims
|
||||
3.5% inter symbols storage 4520272 bytes in 27949 claims
|
||||
13.2% inter bytecode storage 16767680 bytes in 14 claims
|
||||
4.9% inter links storage 6222976 bytes in 11 claims
|
||||
0.1% inter tree location list storage 191232 bytes in 32 claims
|
||||
1.2% instance-of-kind counting 1700416 bytes in 1 claim
|
||||
1.3% instance-of-kind counting 1700416 bytes in 1 claim
|
||||
---- compilation workspace for objects 21896 bytes in 25 claims
|
||||
---- lists for type-checking invocations 16000 bytes in 1 claim
|
||||
---- code generation workspace for objects 1336 bytes in 4 claims
|
||||
0.2% emitter array storage 280288 bytes in 1999 claims
|
||||
|
||||
-139.-2% was overhead - -184656920 bytes = -180329K = -176 MB
|
||||
-146.-1% was overhead - -184656920 bytes = -180329K = -176 MB
|
||||
|
||||
|
|
|
@ -1,33 +1,33 @@
|
|||
100.0% in inform7 run
|
||||
72.1% in compilation to Inter
|
||||
51.0% in //Sequence::undertake_queued_tasks//
|
||||
4.6% in //MajorNodes::pre_pass//
|
||||
3.4% in //MajorNodes::pass_1//
|
||||
2.5% in //RTPhrasebook::compile_entries//
|
||||
1.9% in //ImperativeDefinitions::assess_all//
|
||||
71.3% in compilation to Inter
|
||||
50.7% in //Sequence::undertake_queued_tasks//
|
||||
4.5% in //MajorNodes::pre_pass//
|
||||
3.3% in //MajorNodes::pass_1//
|
||||
1.9% in //RTPhrasebook::compile_entries//
|
||||
1.7% in //ImperativeDefinitions::assess_all//
|
||||
1.3% in //RTKindConstructors::compile//
|
||||
0.9% in //Sequence::lint_inter//
|
||||
1.1% in //Sequence::lint_inter//
|
||||
0.5% in //MajorNodes::pass_2//
|
||||
0.5% in //Sequence::undertake_queued_tasks//
|
||||
0.5% in //Sequence::undertake_queued_tasks//
|
||||
0.5% 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//
|
||||
0.1% in //World::stages_II_and_III//
|
||||
2.7% not specifically accounted for
|
||||
25.1% in running Inter pipeline
|
||||
9.8% in step 14/15: generate inform6 -> auto.inf
|
||||
5.6% in step 5/15: load-binary-kits
|
||||
5.4% in step 6/15: make-synoptic-module
|
||||
2.6% not specifically accounted for
|
||||
25.8% in running Inter pipeline
|
||||
10.0% in step 14/15: generate inform6 -> auto.inf
|
||||
5.7% in step 5/15: load-binary-kits
|
||||
5.5% in step 6/15: make-synoptic-module
|
||||
1.3% in step 9/15: make-identifiers-unique
|
||||
0.3% in step 12/15: eliminate-redundant-operations
|
||||
0.3% in step 4/15: compile-splats
|
||||
0.3% in step 7/15: shorten-wiring
|
||||
0.3% in step 8/15: detect-indirect-calls
|
||||
0.1% in step 11/15: eliminate-redundant-labels
|
||||
1.2% not specifically accounted for
|
||||
1.3% not specifically accounted for
|
||||
2.3% in supervisor
|
||||
0.4% not specifically accounted for
|
||||
|
|
|
@ -167,6 +167,7 @@ void RTKindDeclarations::declare_constructed_kind(cached_kind_declaration *dec)
|
|||
else if (Kinds::get_construct(K) == CON_rulebook) @<Run out inter kind for rulebook@>
|
||||
else if (Kinds::get_construct(K) == CON_table_column) @<Run out inter kind for column@>
|
||||
else if (Kinds::get_construct(K) == CON_relation) @<Run out inter kind for relation@>
|
||||
else if (Kinds::get_construct(K) == CON_activity) @<Run out inter kind for activity@>
|
||||
else {
|
||||
LOG("Unfortunate kind is: %u\n", K);
|
||||
internal_error("unable to represent kind in inter");
|
||||
|
@ -195,6 +196,11 @@ void RTKindDeclarations::declare_constructed_kind(cached_kind_declaration *dec)
|
|||
Kinds::binary_construction_material(K, &operands[0], &operands[1]);
|
||||
icon = RELATION_ITCONC;
|
||||
|
||||
@<Run out inter kind for activity@> =
|
||||
arity = 1;
|
||||
operands[0] = Kinds::unary_construction_material(K);
|
||||
icon = ACTIVITY_ITCONC;
|
||||
|
||||
@<Run out inter kind for phrase@> =
|
||||
icon = FUNCTION_ITCONC;
|
||||
kind *X = NULL, *result = NULL;
|
||||
|
|
|
@ -330,10 +330,10 @@ must be at least one of these, so |struct void| is not allowed.
|
|||
(*) |enum|, for which see below;
|
||||
|
||||
(*) and then a raft of constructions convenient for Inform but which Inter
|
||||
really knows nothing about: |column of T|, |table of T|, |relation of T1 to T2|,
|
||||
|description of T|, |rulebook of T|, and |rule T1 -> T2|. Perhaps these ought
|
||||
to work via a general way for users to create new constructors, but for now
|
||||
they are hard-wired. They do nothing except to be distinct from each other,
|
||||
really knows nothing about: |activity on T|, |column of T|, |table of T|,
|
||||
|relation of T1 to T2|, |description of T|, |rulebook of T|, and |rule T1 -> T2|.
|
||||
Perhaps these ought to work via a general way for users to create new constructors,
|
||||
but for now they are hard-wired. They do nothing except to be distinct from each other,
|
||||
so that Inform can label its data.
|
||||
|
||||
Inter applies the usual rules of covariance and contravariance when matching
|
||||
|
|
|
@ -24,6 +24,7 @@ invalidate existing Inter binary files, necessitating a bump of //The Inter Vers
|
|||
@e TEXT_ITCONC
|
||||
@e ENUM_ITCONC
|
||||
@e LIST_ITCONC
|
||||
@e ACTIVITY_ITCONC
|
||||
@e COLUMN_ITCONC
|
||||
@e TABLE_ITCONC
|
||||
@e FUNCTION_ITCONC
|
||||
|
@ -76,6 +77,7 @@ void InterTypes::initialise_constructors(void) {
|
|||
InterTypes::init_con(TEXT_ITCONC, I"text", -2147483648, 2147483647, FALSE, TRUE, 0);
|
||||
InterTypes::init_con(ENUM_ITCONC, I"enum", 0, 2147483647, TRUE, TRUE, 0);
|
||||
InterTypes::init_con(LIST_ITCONC, I"list", -2147483648, 2147483647, FALSE, FALSE, 1);
|
||||
InterTypes::init_con(ACTIVITY_ITCONC, I"activity", -2147483648, 2147483647, FALSE, FALSE, 1);
|
||||
InterTypes::init_con(COLUMN_ITCONC, I"column", -2147483648, 2147483647, FALSE, FALSE, 1);
|
||||
InterTypes::init_con(TABLE_ITCONC, I"table", -2147483648, 2147483647, FALSE, FALSE, 1);
|
||||
InterTypes::init_con(FUNCTION_ITCONC, I"function", -2147483648, 2147483647, FALSE, FALSE, 2);
|
||||
|
@ -376,6 +378,7 @@ inter_error_message *InterTypes::parse_semisimple(text_stream *text, inter_symbo
|
|||
|
||||
@<Parse rulebook syntax@>;
|
||||
@<Parse list syntax@>;
|
||||
@<Parse activity syntax@>;
|
||||
@<Parse column syntax@>;
|
||||
@<Parse table syntax@>;
|
||||
@<Parse description syntax@>;
|
||||
|
@ -407,6 +410,15 @@ inter_error_message *InterTypes::parse_semisimple(text_stream *text, inter_symbo
|
|||
return E;
|
||||
}
|
||||
|
||||
@<Parse activity syntax@> =
|
||||
if (Regexp::match(&mr, text, L"activity on (%C+)")) {
|
||||
results->constructor_code = ACTIVITY_ITCONC;
|
||||
inter_type conts_type = InterTypes::parse_simple(T, eloc, mr.exp[0], &E);
|
||||
InterTypes::add_operand_to_isstd(results, T, conts_type);
|
||||
Regexp::dispose_of(&mr);
|
||||
return E;
|
||||
}
|
||||
|
||||
@<Parse column syntax@> =
|
||||
if (Regexp::match(&mr, text, L"column of (%C+)")) {
|
||||
results->constructor_code = COLUMN_ITCONC;
|
||||
|
@ -597,6 +609,10 @@ void InterTypes::write_type_longhand(OUTPUT_STREAM, inter_type type) {
|
|||
WRITE(" of ");
|
||||
InterTypes::write_type(OUT, InterTypes::type_operand(type, 0));
|
||||
break;
|
||||
case ACTIVITY_ITCONC:
|
||||
WRITE(" on ");
|
||||
InterTypes::write_type(OUT, InterTypes::type_operand(type, 0));
|
||||
break;
|
||||
case RELATION_ITCONC:
|
||||
WRITE(" of ");
|
||||
InterTypes::write_type(OUT, InterTypes::type_operand(type, 0));
|
||||
|
|
|
@ -75,8 +75,8 @@ checks that we aren't doing that:
|
|||
int Kinds::Behaviour::definite(kind *K) {
|
||||
if (K == NULL) return TRUE;
|
||||
if (KindConstructors::is_definite(K->construct) == FALSE) return FALSE;
|
||||
int i, arity = KindConstructors::arity(K->construct);
|
||||
for (i=0; i<arity; i++)
|
||||
int arity = KindConstructors::arity(K->construct);
|
||||
for (int i=0; i<arity; i++)
|
||||
if (Kinds::Behaviour::definite(K->kc_args[i]) == FALSE)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
|
@ -87,15 +87,15 @@ int Kinds::Behaviour::semidefinite(kind *K) {
|
|||
if (K->construct == CON_KIND_VARIABLE) return TRUE;
|
||||
if (K->construct == CON_NIL) return FALSE;
|
||||
if (KindConstructors::is_definite(K->construct) == FALSE) return FALSE;
|
||||
int i, arity = KindConstructors::arity(K->construct);
|
||||
int arity = KindConstructors::arity(K->construct);
|
||||
if ((K->construct == CON_TUPLE_ENTRY) && (Kinds::eq(K->kc_args[1], K_void))) arity = 1;
|
||||
if (K->construct == CON_phrase) {
|
||||
for (i=0; i<arity; i++)
|
||||
if ((K->construct == CON_phrase) || (K->construct == CON_activity)) {
|
||||
for (int i=0; i<arity; i++)
|
||||
if ((Kinds::eq(K->kc_args[i], K_nil) == FALSE) &&
|
||||
(Kinds::Behaviour::semidefinite(K->kc_args[i]) == FALSE))
|
||||
return FALSE;
|
||||
} else {
|
||||
for (i=0; i<arity; i++)
|
||||
for (int i=0; i<arity; i++)
|
||||
if (Kinds::Behaviour::semidefinite(K->kc_args[i]) == FALSE)
|
||||
return FALSE;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue