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

Began tinkering with RTP issuing process

This commit is contained in:
Graham Nelson 2023-08-26 17:07:42 +01:00
parent 5dc29e47ee
commit 10d3da6a3e
12 changed files with 500 additions and 314 deletions

View file

@ -130,7 +130,7 @@ virtual machine opcode which crashes on divide by zero.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">IntegerDivide</span><span class="plain-syntax"> </span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">B</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) { </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTP_DIVZERO</span><span class="plain-syntax">); </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">; }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">B</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) { </span><span class="identifier-syntax">IssueRTP</span><span class="plain-syntax">(</span><span class="string-syntax">"DividedByZero"</span><span class="plain-syntax">, </span><span class="string-syntax">"You can't divide by zero."</span><span class="plain-syntax">, </span><span class="identifier-syntax">BasicInformKitRTPs</span><span class="plain-syntax">); </span><span class="reserved-syntax">rfalse</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">A</span><span class="plain-syntax">/</span><span class="identifier-syntax">B</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>
@ -139,7 +139,7 @@ virtual machine opcode which crashes on divide by zero.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">[ </span><span class="identifier-syntax">IntegerRemainder</span><span class="plain-syntax"> </span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">B</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) { </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTP_DIVZERO</span><span class="plain-syntax">); </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">; }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">B</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) { </span><span class="identifier-syntax">IssueRTP</span><span class="plain-syntax">(</span><span class="string-syntax">"DividedByZero"</span><span class="plain-syntax">, </span><span class="string-syntax">"You can't divide by zero."</span><span class="plain-syntax">, </span><span class="identifier-syntax">BasicInformKitRTPs</span><span class="plain-syntax">); </span><span class="reserved-syntax">rfalse</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">A</span><span class="plain-syntax">%</span><span class="identifier-syntax">B</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>

View file

@ -69,7 +69,26 @@ original source text (though in fact I7 does not use this at present).
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax"> --&gt; (-1) </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax"> --&gt; (-1) </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax">[ </span><span class="identifier-syntax">IssueRTP</span><span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax"> </span><span class="identifier-syntax">desc</span><span class="plain-syntax"> </span><span class="identifier-syntax">set</span><span class="plain-syntax"> </span><span class="identifier-syntax">par1</span><span class="plain-syntax"> </span><span class="identifier-syntax">par2</span><span class="plain-syntax"> </span><span class="identifier-syntax">par3</span><span class="plain-syntax"> </span><span class="identifier-syntax">ln</span><span class="plain-syntax"> </span><span class="identifier-syntax">file</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">n</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">String</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> ((</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">String</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">Routine</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">set</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">String</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;0 == -1) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;0 = </span><span class="identifier-syntax">n</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;1 = </span><span class="identifier-syntax">par1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;2 = </span><span class="identifier-syntax">par2</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;3 = </span><span class="identifier-syntax">par3</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;4 = </span><span class="identifier-syntax">ln</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;5 = </span><span class="identifier-syntax">file</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;7 = </span><span class="identifier-syntax">desc</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;8 = </span><span class="identifier-syntax">set</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RunTimeProblemShow</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="string-syntax">"*** Improper call to IssueRTP ***"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">];</span>
<span class="plain-syntax">[ </span><span class="identifier-syntax">RunTimeProblem</span><span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax"> </span><span class="identifier-syntax">par1</span><span class="plain-syntax"> </span><span class="identifier-syntax">par2</span><span class="plain-syntax"> </span><span class="identifier-syntax">par3</span><span class="plain-syntax"> </span><span class="identifier-syntax">ln</span><span class="plain-syntax"> </span><span class="identifier-syntax">file</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;0 == -1) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;0 = </span><span class="identifier-syntax">n</span><span class="plain-syntax">;</span>
@ -78,6 +97,8 @@ original source text (though in fact I7 does not use this at present).
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;3 = </span><span class="identifier-syntax">par3</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;4 = </span><span class="identifier-syntax">ln</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;5 = </span><span class="identifier-syntax">file</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;7 = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;8 = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RunTimeProblemShow</span><span class="plain-syntax">();</span>
<span class="plain-syntax">];</span>
@ -91,7 +112,7 @@ original source text (though in fact I7 does not use this at present).
<span class="plain-syntax">[ </span><span class="identifier-syntax">ResumeRTP</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;6 = </span><span class="reserved-syntax">false</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
<span class="plain-syntax">[ </span><span class="identifier-syntax">RunTimeProblemShow</span><span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax"> </span><span class="identifier-syntax">par1</span><span class="plain-syntax"> </span><span class="identifier-syntax">par2</span><span class="plain-syntax"> </span><span class="identifier-syntax">par3</span><span class="plain-syntax"> </span><span class="identifier-syntax">ln</span><span class="plain-syntax"> </span><span class="identifier-syntax">file</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax">;</span>
<span class="plain-syntax">[ </span><span class="identifier-syntax">RunTimeProblemShow</span><span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax"> </span><span class="identifier-syntax">par1</span><span class="plain-syntax"> </span><span class="identifier-syntax">par2</span><span class="plain-syntax"> </span><span class="identifier-syntax">par3</span><span class="plain-syntax"> </span><span class="identifier-syntax">ln</span><span class="plain-syntax"> </span><span class="identifier-syntax">file</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> </span><span class="identifier-syntax">desc</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;0 == -1 </span><span class="reserved-syntax">or</span><span class="plain-syntax"> -2) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;6) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
@ -104,129 +125,133 @@ original source text (though in fact I7 does not use this at present).
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;0 = -2;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">new_line</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"*** Run-time problem P"</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ln</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">" (at paragraph "</span><span class="plain-syntax">, </span><span class="identifier-syntax">ln</span><span class="plain-syntax">, </span><span class="string-syntax">" in "</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">file</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"the source text"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">ShowOneExtension</span><span class="plain-syntax">(</span><span class="identifier-syntax">file</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">")"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"*** Run-time problem "</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">n</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">String</span><span class="plain-syntax">) </span><span class="reserved-syntax">print</span><span class="plain-syntax"> (</span><span class="reserved-syntax">string</span><span class="plain-syntax">) </span><span class="identifier-syntax">n</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"P"</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">DEBUG</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;8) { </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">": "</span><span class="plain-syntax">, (</span><span class="reserved-syntax">string</span><span class="plain-syntax">) </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;8; }</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"^*** "</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RTP_Buffer</span><span class="plain-syntax">--&gt;7;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">String</span><span class="plain-syntax">) </span><span class="reserved-syntax">print</span><span class="plain-syntax"> (</span><span class="reserved-syntax">string</span><span class="plain-syntax">) </span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">Routine</span><span class="plain-syntax">) </span><span class="identifier-syntax">desc</span><span class="plain-syntax">(</span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="identifier-syntax">par2</span><span class="plain-syntax">, </span><span class="identifier-syntax">par3</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax">(</span><span class="identifier-syntax">n</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_IMPREL</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Tried to access an inappropriate relation for "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">the</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">", violating '"</span><span class="plain-syntax">, (</span><span class="reserved-syntax">string</span><span class="plain-syntax">) </span><span class="identifier-syntax">RlnGetF</span><span class="plain-syntax">(</span><span class="identifier-syntax">par2</span><span class="plain-syntax">, </span><span class="identifier-syntax">RR_DESCRIPTION</span><span class="plain-syntax">), </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TOOMANYRULEBOOKS</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Too many rulebooks in simultaneous use.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_BADPROPERTY</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Tried to access non-existent property for "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">the</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">".^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_UNPROVIDED</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Since "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">the</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">" is not allowed the property ~"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintPropertyName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par2</span><span class="plain-syntax">, </span><span class="string-syntax">"~, it is against the rules to try to use it.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_UNSET</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Although "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">the</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">" is allowed to have the property ~"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintPropertyName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par2</span><span class="plain-syntax">, </span><span class="string-syntax">"~, no value was ever given, so it can't now be used.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TOOMANYACTS</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Too many activities are going on at once.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_CANTABANDON</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Tried to abandon an activity which wasn't going on.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_CANTEND</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Tried to end an activity which wasn't going on.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_DIVZERO</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"You can't divide by zero.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_BADVALUEPROPERTY</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Tried to access property for a value which didn't fit: "</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"if this were a number it would be "</span><span class="plain-syntax">, </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">".^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOCOL</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to look up a non-existent column in the table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOCORR</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to look up a non-existent correspondence in the table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOROW</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to look up a non-existent row in the table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOENTRY</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to look up a non-existent entry at column "</span><span class="plain-syntax">, </span><span class="identifier-syntax">par2</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">", row "</span><span class="plain-syntax">, </span><span class="identifier-syntax">par3</span><span class="plain-syntax">, </span><span class="string-syntax">" of the table '"</span><span class="plain-syntax">, (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOTABLE</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to blank out a row from a non-existent table (value "</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">").^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOTABLE2</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to access an entry from a non-existent table.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOMOREBLANKS</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to choose a blank row in a table with none left: table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOROWS</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to choose a random row in an entirely blank table: table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_CANTRUNTHROUGH</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to repeat through a table in a tricky column order: table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_CANTSORT</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to sort a table whose ordering must remain fixed: table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_CANTSAVE</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to save a table to a file whose data is unstable: table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_WONTFIT</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"File being read has too many rows or columns to fit into table: table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_BADFILE</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"File being read is not a previously saved table: table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_ROUTELESS</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to find route or count steps through an implicit</span>
<span class="string-syntax"> relation.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_PROPOFNOTHING</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to use a property of the 'nothing' non-object: property "</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintPropertyName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par2</span><span class="plain-syntax">, </span><span class="string-syntax">"^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_DECIDEONWRONGKIND</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to 'decide on V' where V is the wrong kind of object.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_DECIDEONNOTHING</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to 'decide on nothing'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_LOWLEVELERROR</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Low level error.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_LISTWRITERMEMORY</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"The list-writer has run out of memory.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_MSTACKMEMORY</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"The memory stack is exhausted.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TYPECHECK</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Phrase applied to an incompatible kind of value.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_FILEIOERROR</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Error handling external file.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_HEAPERROR</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Memory allocation proved impossible.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_LISTRANGEERROR</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to use list item which does not exist.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_LISTSIZENEGATIVE</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to resize list to "</span><span class="plain-syntax">, </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">" entries - there must "</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"always be 0 or more.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_REGEXPSYNTAXERROR</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Syntax error in regular expression.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_NEGATIVEROOT</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"You can't take the square root of a negative number.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_CANTITERATE</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"You can't implicitly repeat through the values of this kind: "</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"a problem arising from a description which started out here - ~"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="reserved-syntax">string</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"~.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_WRONGASSIGNEDKIND</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to set a variable to the wrong kind of object: "</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"you wrote '"</span><span class="plain-syntax">, (</span><span class="reserved-syntax">string</span><span class="plain-syntax">) </span><span class="identifier-syntax">par2</span><span class="plain-syntax">, </span><span class="string-syntax">"', which sets the value to "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">the</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">" - but that doesn't have the kind '"</span><span class="plain-syntax">, (</span><span class="reserved-syntax">string</span><span class="plain-syntax">) </span><span class="identifier-syntax">par3</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_RELKINDVIOLATION</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Tried to change a relation for objects with the wrong kinds: "</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="reserved-syntax">string</span><span class="plain-syntax">) </span><span class="identifier-syntax">RlnGetF</span><span class="plain-syntax">(</span><span class="identifier-syntax">par3</span><span class="plain-syntax">, </span><span class="identifier-syntax">RR_DESCRIPTION</span><span class="plain-syntax">), </span><span class="string-syntax">", but you tried to "</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"relate (or unrelate) "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">the</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">" to "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">the</span><span class="plain-syntax">) </span><span class="identifier-syntax">par2</span><span class="plain-syntax">, </span><span class="string-syntax">".^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TEXTTOKENTOOHARD</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"This use of '[text]' is too complicated.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_RELATIONCHANGEIMPOSSIBLE</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"This change of the relation's nature is impossible in play.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_RELMINIMAL</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"This operation can't be done with the relation '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="reserved-syntax">string</span><span class="plain-syntax">) </span><span class="identifier-syntax">RlnGetF</span><span class="plain-syntax">(</span><span class="identifier-syntax">par3</span><span class="plain-syntax">, </span><span class="identifier-syntax">RR_DESCRIPTION</span><span class="plain-syntax">), </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RunTimeProblemShowWM</span><span class="plain-syntax">(</span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="identifier-syntax">par2</span><span class="plain-syntax">, </span><span class="identifier-syntax">par3</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">": "</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax">(</span><span class="identifier-syntax">n</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_IMPREL</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Tried to access an inappropriate relation for "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">the</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">", violating '"</span><span class="plain-syntax">, (</span><span class="reserved-syntax">string</span><span class="plain-syntax">) </span><span class="identifier-syntax">RlnGetF</span><span class="plain-syntax">(</span><span class="identifier-syntax">par2</span><span class="plain-syntax">, </span><span class="identifier-syntax">RR_DESCRIPTION</span><span class="plain-syntax">), </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TOOMANYRULEBOOKS</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Too many rulebooks in simultaneous use.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_BADPROPERTY</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Tried to access non-existent property for "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">the</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">".^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_UNPROVIDED</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Since "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">the</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">" is not allowed the property ~"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintPropertyName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par2</span><span class="plain-syntax">, </span><span class="string-syntax">"~, it is against the rules to try to use it.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_UNSET</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Although "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">the</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">" is allowed to have the property ~"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintPropertyName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par2</span><span class="plain-syntax">, </span><span class="string-syntax">"~, no value was ever given, so it can't now be used.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TOOMANYACTS</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Too many activities are going on at once.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_CANTABANDON</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Tried to abandon an activity which wasn't going on.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_CANTEND</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Tried to end an activity which wasn't going on.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_DIVZERO</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"You can't divide by zero.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_BADVALUEPROPERTY</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Tried to access property for a value which didn't fit: "</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"if this were a number it would be "</span><span class="plain-syntax">, </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">".^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOCOL</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to look up a non-existent column in the table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOCORR</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to look up a non-existent correspondence in the table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOROW</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to look up a non-existent row in the table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOENTRY</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to look up a non-existent entry at column "</span><span class="plain-syntax">, </span><span class="identifier-syntax">par2</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">", row "</span><span class="plain-syntax">, </span><span class="identifier-syntax">par3</span><span class="plain-syntax">, </span><span class="string-syntax">" of the table '"</span><span class="plain-syntax">, (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOTABLE</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to blank out a row from a non-existent table (value "</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">").^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOTABLE2</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to access an entry from a non-existent table.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOMOREBLANKS</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to choose a blank row in a table with none left: table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOROWS</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to choose a random row in an entirely blank table: table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_CANTRUNTHROUGH</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to repeat through a table in a tricky column order: table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_CANTSORT</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to sort a table whose ordering must remain fixed: table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_CANTSAVE</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to save a table to a file whose data is unstable: table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_WONTFIT</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"File being read has too many rows or columns to fit into table: table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_BADFILE</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"File being read is not a previously saved table: table '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintTableName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_ROUTELESS</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to find route or count steps through an implicit</span>
<span class="string-syntax"> relation.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_PROPOFNOTHING</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to use a property of the 'nothing' non-object: property "</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PrintPropertyName</span><span class="plain-syntax">) </span><span class="identifier-syntax">par2</span><span class="plain-syntax">, </span><span class="string-syntax">"^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_DECIDEONWRONGKIND</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to 'decide on V' where V is the wrong kind of object.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_DECIDEONNOTHING</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to 'decide on nothing'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_LOWLEVELERROR</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Low level error.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_LISTWRITERMEMORY</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"The list-writer has run out of memory.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_MSTACKMEMORY</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"The memory stack is exhausted.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TYPECHECK</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Phrase applied to an incompatible kind of value.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_FILEIOERROR</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Error handling external file.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_HEAPERROR</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Memory allocation proved impossible.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_LISTRANGEERROR</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to use list item which does not exist.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_LISTSIZENEGATIVE</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to resize list to "</span><span class="plain-syntax">, </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">" entries - there must "</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"always be 0 or more.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_REGEXPSYNTAXERROR</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Syntax error in regular expression.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_NEGATIVEROOT</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"You can't take the square root of a negative number.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_CANTITERATE</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"You can't implicitly repeat through the values of this kind: "</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"a problem arising from a description which started out here - ~"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="reserved-syntax">string</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">"~.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_WRONGASSIGNEDKIND</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Attempt to set a variable to the wrong kind of object: "</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"you wrote '"</span><span class="plain-syntax">, (</span><span class="reserved-syntax">string</span><span class="plain-syntax">) </span><span class="identifier-syntax">par2</span><span class="plain-syntax">, </span><span class="string-syntax">"', which sets the value to "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">the</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">" - but that doesn't have the kind '"</span><span class="plain-syntax">, (</span><span class="reserved-syntax">string</span><span class="plain-syntax">) </span><span class="identifier-syntax">par3</span><span class="plain-syntax">, </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_RELKINDVIOLATION</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Tried to change a relation for objects with the wrong kinds: "</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="reserved-syntax">string</span><span class="plain-syntax">) </span><span class="identifier-syntax">RlnGetF</span><span class="plain-syntax">(</span><span class="identifier-syntax">par3</span><span class="plain-syntax">, </span><span class="identifier-syntax">RR_DESCRIPTION</span><span class="plain-syntax">), </span><span class="string-syntax">", but you tried to "</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"relate (or unrelate) "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">the</span><span class="plain-syntax">) </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="string-syntax">" to "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">the</span><span class="plain-syntax">) </span><span class="identifier-syntax">par2</span><span class="plain-syntax">, </span><span class="string-syntax">".^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TEXTTOKENTOOHARD</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"This use of '[text]' is too complicated.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_RELATIONCHANGEIMPOSSIBLE</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"This change of the relation's nature is impossible in play.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTP_RELMINIMAL</span><span class="plain-syntax">:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"This operation can't be done with the relation '"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="reserved-syntax">string</span><span class="plain-syntax">) </span><span class="identifier-syntax">RlnGetF</span><span class="plain-syntax">(</span><span class="identifier-syntax">par3</span><span class="plain-syntax">, </span><span class="identifier-syntax">RR_DESCRIPTION</span><span class="plain-syntax">), </span><span class="string-syntax">"'.^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RunTimeProblemShowWM</span><span class="plain-syntax">(</span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="identifier-syntax">par2</span><span class="plain-syntax">, </span><span class="identifier-syntax">par3</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax">];</span>
</pre>

View file

@ -192,7 +192,7 @@ it represents an actual number at run-time, the second if not:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::numeric_constant</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Emit::numeric_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">&#167;23</a><br/>Compilation Units - <a href="2-cu.html#SP2_1_3">&#167;2.1.3</a><br/>The Heap - <a href="2-th.html#SP2">&#167;2</a><br/>Completion Module - <a href="3-cm.html#SP1_5">&#167;1.5</a>, <a href="3-cm.html#SP1_6">&#167;1.6</a>, <a href="3-cm.html#SP1_7">&#167;1.7</a>, <a href="3-cm.html#SP1_8">&#167;1.8</a>, <a href="3-cm.html#SP1_11_1">&#167;1.11.1</a><br/>Use Options - <a href="3-uo.html#SP1_3">&#167;1.3</a>, <a href="3-uo.html#SP3">&#167;3</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a><br/>Activities - <a href="5-act.html#SP8">&#167;8</a><br/>Chronology - <a href="5-chr.html#SP3_3">&#167;3.3</a>, <a href="5-chr.html#SP7_1">&#167;7.1</a><br/>Conjugations - <a href="5-cnj.html#SP12">&#167;12</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">&#167;2.1.1.1.3</a>, <a href="5-tbl.html#SP2_3">&#167;2.3</a><br/>Table Columns - <a href="5-tc.html#SP2">&#167;2</a><br/>Rules - <a href="5-rls.html#SP12_2">&#167;12.2</a><br/>Rulebooks - <a href="5-rlb.html#SP8_2">&#167;8.2</a><br/>Variables - <a href="5-vrb.html#SP14">&#167;14</a><br/>Properties - <a href="5-prp.html#SP8_3">&#167;8.3</a><br/>Relations - <a href="5-rlt.html#SP5">&#167;5</a>, <a href="5-rlt.html#SP10_3">&#167;10.3</a><br/>Kind Constructors - <a href="5-kc.html#SP32_1_1">&#167;32.1.1</a>, <a href="5-kc.html#SP32_1_2">&#167;32.1.2</a>, <a href="5-kc.html#SP32_3_1">&#167;32.3.1</a>, <a href="5-kc.html#SP32_3_3">&#167;32.3.3</a>, <a href="5-kc.html#SP32_3_4">&#167;32.3.4</a>, <a href="5-kc.html#SP32_3_5">&#167;32.3.5</a><br/>Kind IDs - <a href="5-ki.html#SP9_2">&#167;9.2</a><br/>Actions - <a href="5-act2.html#SP8_1">&#167;8.1</a>, <a href="5-act2.html#SP8_3">&#167;8.3</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_6">&#167;1.6</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP1">&#167;1</a><br/>Command Grammars - <a href="7-cg.html#SP3">&#167;3</a>, <a href="7-cg.html#SP11">&#167;11</a>, <a href="7-cg.html#SP16">&#167;16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::numeric_constant</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Emit::numeric_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">&#167;23</a><br/>Compilation Units - <a href="2-cu.html#SP2_1_3">&#167;2.1.3</a><br/>The Heap - <a href="2-th.html#SP2">&#167;2</a><br/>Completion Module - <a href="3-cm.html#SP1_5">&#167;1.5</a>, <a href="3-cm.html#SP1_6">&#167;1.6</a>, <a href="3-cm.html#SP1_7">&#167;1.7</a>, <a href="3-cm.html#SP1_8">&#167;1.8</a>, <a href="3-cm.html#SP1_12_1">&#167;1.12.1</a><br/>Use Options - <a href="3-uo.html#SP1_3">&#167;1.3</a>, <a href="3-uo.html#SP3">&#167;3</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a><br/>Activities - <a href="5-act.html#SP8">&#167;8</a><br/>Chronology - <a href="5-chr.html#SP3_3">&#167;3.3</a>, <a href="5-chr.html#SP7_1">&#167;7.1</a><br/>Conjugations - <a href="5-cnj.html#SP12">&#167;12</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">&#167;2.1.1.1.3</a>, <a href="5-tbl.html#SP2_3">&#167;2.3</a><br/>Table Columns - <a href="5-tc.html#SP2">&#167;2</a><br/>Rules - <a href="5-rls.html#SP12_2">&#167;12.2</a><br/>Rulebooks - <a href="5-rlb.html#SP8_2">&#167;8.2</a><br/>Variables - <a href="5-vrb.html#SP14">&#167;14</a><br/>Properties - <a href="5-prp.html#SP8_3">&#167;8.3</a><br/>Relations - <a href="5-rlt.html#SP5">&#167;5</a>, <a href="5-rlt.html#SP10_3">&#167;10.3</a><br/>Kind Constructors - <a href="5-kc.html#SP32_1_1">&#167;32.1.1</a>, <a href="5-kc.html#SP32_1_2">&#167;32.1.2</a>, <a href="5-kc.html#SP32_3_1">&#167;32.3.1</a>, <a href="5-kc.html#SP32_3_3">&#167;32.3.3</a>, <a href="5-kc.html#SP32_3_4">&#167;32.3.4</a>, <a href="5-kc.html#SP32_3_5">&#167;32.3.5</a><br/>Kind IDs - <a href="5-ki.html#SP9_2">&#167;9.2</a><br/>Actions - <a href="5-act2.html#SP8_1">&#167;8.1</a>, <a href="5-act2.html#SP8_3">&#167;8.3</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_6">&#167;1.6</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP1">&#167;1</a><br/>Command Grammars - <a href="7-cg.html#SP3">&#167;3</a>, <a href="7-cg.html#SP11">&#167;11</a>, <a href="7-cg.html#SP16">&#167;16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-emt.html#SP6" class="function-link"><span class="function-syntax">Emit::numeric_constant_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::number_in_base</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="constant-syntax">10</span><span class="plain-syntax">), </span><span class="identifier-syntax">INT32_ITCONC</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -232,7 +232,7 @@ it represents an actual number at run-time, the second if not:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::text_constant</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Emit::text_constant</span></span>:<br/><a href="2-emt.html#SP10">&#167;10</a><br/>Hierarchy - <a href="2-hrr.html#SP23">&#167;23</a><br/>Completion Module - <a href="3-cm.html#SP1_1">&#167;1.1</a>, <a href="3-cm.html#SP1_2">&#167;1.2</a>, <a href="3-cm.html#SP1_3">&#167;1.3</a>, <a href="3-cm.html#SP1_4">&#167;1.4</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a><br/>Rulebooks - <a href="5-rlb.html#SP15_2">&#167;15.2</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_1">&#167;1.1</a>, <a href="6-bd.html#SP1_2">&#167;1.2</a>, <a href="6-bd.html#SP1_3">&#167;1.3</a>, <a href="6-bd.html#SP1_4">&#167;1.4</a>, <a href="6-bd.html#SP1_5">&#167;1.5</a>, <a href="6-bd.html#SP1_6">&#167;1.6</a>, <a href="6-bd.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">contents</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Emit::text_constant</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Emit::text_constant</span></span>:<br/><a href="2-emt.html#SP10">&#167;10</a><br/>Hierarchy - <a href="2-hrr.html#SP23">&#167;23</a><br/>Completion Module - <a href="3-cm.html#SP1_1">&#167;1.1</a>, <a href="3-cm.html#SP1_2">&#167;1.2</a>, <a href="3-cm.html#SP1_3">&#167;1.3</a>, <a href="3-cm.html#SP1_4">&#167;1.4</a>, <a href="3-cm.html#SP1_9_1">&#167;1.9.1</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a><br/>Rulebooks - <a href="5-rlb.html#SP15_2">&#167;15.2</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_1">&#167;1.1</a>, <a href="6-bd.html#SP1_2">&#167;1.2</a>, <a href="6-bd.html#SP1_3">&#167;1.3</a>, <a href="6-bd.html#SP1_4">&#167;1.4</a>, <a href="6-bd.html#SP1_5">&#167;1.5</a>, <a href="6-bd.html#SP1_6">&#167;1.6</a>, <a href="6-bd.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">contents</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">ConstantInstruction::new</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::at</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">con_s</span><span class="plain-syntax">,</span>

File diff suppressed because one or more lines are too long

View file

@ -70,8 +70,9 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cm.html#SP1_6" class="named-paragraph-link"><span class="named-paragraph">Frame size</span><span class="named-paragraph-number">1.6</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cm.html#SP1_7" class="named-paragraph-link"><span class="named-paragraph">RNG seed</span><span class="named-paragraph-number">1.7</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cm.html#SP1_8" class="named-paragraph-link"><span class="named-paragraph">Max indexed thumbnails</span><span class="named-paragraph-number">1.8</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cm.html#SP1_11" class="named-paragraph-link"><span class="named-paragraph">Headings</span><span class="named-paragraph-number">1.11</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cm.html#SP1_9" class="named-paragraph-link"><span class="named-paragraph">Debugging log aspects</span><span class="named-paragraph-number">1.9</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cm.html#SP1_12" class="named-paragraph-link"><span class="named-paragraph">Headings</span><span class="named-paragraph-number">1.12</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cm.html#SP1_9" class="named-paragraph-link"><span class="named-paragraph">Kit relative paths</span><span class="named-paragraph-number">1.9</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cm.html#SP1_10" class="named-paragraph-link"><span class="named-paragraph">Debugging log aspects</span><span class="named-paragraph-number">1.10</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_1" class="paragraph-anchor"></a><b>&#167;1.1. </b>So, for example, these might be <span class="extract"><span class="extract-syntax">10.1.0</span></span> and <span class="extract"><span class="extract-syntax">10.1.0-alpha.1+6R84</span></span> respectively.
@ -177,7 +178,73 @@ function togglePopup(material_id) {
<span class="plain-syntax"> (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">global_compilation_settings</span><span class="plain-syntax">.</span><span class="identifier-syntax">index_figure_thumbnails</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-cm.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_9" class="paragraph-anchor"></a><b>&#167;1.9. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Debugging log aspects</span><span class="named-paragraph-number">1.9</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP1_9" class="paragraph-anchor"></a><b>&#167;1.9. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Kit relative paths</span><span class="named-paragraph-number">1.9</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">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Task::project</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kit_dependency</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kd</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">kd</span><span class="plain-syntax">, </span><span class="identifier-syntax">kit_dependency</span><span class="plain-syntax">, </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">kits_to_include</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">kd</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">kit</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">location_if_path</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">kd</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">kit</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">title</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">, </span><span class="string-syntax">"%SRTPs"</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cm.html#SP1_9_1" class="named-paragraph-link"><span class="named-paragraph">Define an RTP location for P with this name</span><span class="named-paragraph-number">1.9.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax">, </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">extensions_included</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">location_if_path</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">title</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">) != </span><span class="character-syntax">' '</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">, </span><span class="identifier-syntax">Str::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">, </span><span class="string-syntax">"RTPs"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cm.html#SP1_9_1" class="named-paragraph-link"><span class="named-paragraph">Define an RTP location for P with this name</span><span class="named-paragraph-number">1.9.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-cm.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_9_1" class="paragraph-anchor"></a><b>&#167;1.9.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define an RTP location for P with this name</span><span class="named-paragraph-number">1.9.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">at</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">P_text</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">P_text</span><span class="plain-syntax">, </span><span class="string-syntax">"%p"</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">M_text</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">M_text</span><span class="plain-syntax">, </span><span class="string-syntax">"%p"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Projects::materials_path</span><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">I_text</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Supervisor::installed_files</span><span class="plain-syntax">())</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">I_text</span><span class="plain-syntax">, </span><span class="string-syntax">"%p"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Supervisor::installed_files</span><span class="plain-syntax">());</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::begins_with</span><span class="plain-syntax">(</span><span class="identifier-syntax">P_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">M_text</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">at</span><span class="plain-syntax">, </span><span class="string-syntax">"MATERIALS/"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Pathnames::to_text_relative</span><span class="plain-syntax">(</span><span class="identifier-syntax">at</span><span class="plain-syntax">, </span><span class="identifier-syntax">Projects::materials_path</span><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="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">I_text</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Str::begins_with</span><span class="plain-syntax">(</span><span class="identifier-syntax">P_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">I_text</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">at</span><span class="plain-syntax">, </span><span class="string-syntax">"INTERNAL/"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Pathnames::to_text_relative</span><span class="plain-syntax">(</span><span class="identifier-syntax">at</span><span class="plain-syntax">, </span><span class="identifier-syntax">Supervisor::installed_files</span><span class="plain-syntax">(), </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">at</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">P_text</span><span class="plain-syntax">);</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">"DEFINE %S = %S.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">identifier</span><span class="plain-syntax">, </span><span class="identifier-syntax">at</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP20" class="function-link"><span class="function-syntax">Hierarchy::completion_package</span></a><span class="plain-syntax">(</span><span class="constant-syntax">RTPS_HAP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">RTP_SOURCE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterNames::set_translation</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">identifier</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterNames::clear_flag</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">MAKE_NAME_UNIQUE_ISYMF</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">at</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">at</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">P_text</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">M_text</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">I_text</span><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-cm.html#SP1_9">&#167;1.9</a> (twice).</li></ul>
<p class="commentary firstcommentary"><a id="SP1_10" class="paragraph-anchor"></a><b>&#167;1.10. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Debugging log aspects</span><span class="named-paragraph-number">1.10</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -193,7 +260,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-cm.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_10" class="paragraph-anchor"></a><b>&#167;1.10. </b></p>
<p class="commentary firstcommentary"><a id="SP1_11" class="paragraph-anchor"></a><b>&#167;1.11. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">heading_compilation_data</span><span class="plain-syntax"> {</span>
@ -227,7 +294,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">} </span><span class="reserved-syntax">contents_entry</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure heading_compilation_data is private to this section.</li><li>The structure contents_entry is accessed in 2/cu, 4/ts, 5/act, 5/si, 5/tbl, 5/dbi, 5/dli, 5/dci, 5/rls, 5/rlb, 5/lp and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_11" class="paragraph-anchor"></a><b>&#167;1.11. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Headings</span><span class="named-paragraph-number">1.11</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP1_12" class="paragraph-anchor"></a><b>&#167;1.12. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Headings</span><span class="named-paragraph-number">1.12</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -243,7 +310,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">ce</span><span class="plain-syntax">, </span><span class="reserved-syntax">contents_entry</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">h</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ce</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">heading_entered</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP20" class="function-link"><span class="function-syntax">Hierarchy::completion_package</span></a><span class="plain-syntax">(</span><span class="constant-syntax">HEADINGS_HAP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cm.html#SP1_11_1" class="named-paragraph-link"><span class="named-paragraph">Write the details</span><span class="named-paragraph-number">1.11.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cm.html#SP1_12_1" class="named-paragraph-link"><span class="named-paragraph">Write the details</span><span class="named-paragraph-number">1.12.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">HEADING_INDEXABLE_MD_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">contents_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_ce</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEXT_OBJECT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ce</span><span class="plain-syntax">, </span><span class="reserved-syntax">contents_entry</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">h</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">level</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
@ -259,7 +326,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">HEADING_WORD_COUNT_MD_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cm.html#SP1_11_2" class="named-paragraph-link"><span class="named-paragraph">Summarise all the objects and kinds created under the given heading</span><span class="named-paragraph-number">1.11.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cm.html#SP1_12_2" class="named-paragraph-link"><span class="named-paragraph">Summarise all the objects and kinds created under the given heading</span><span class="named-paragraph-number">1.12.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">HEADING_SUMMARY_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">)</span>
@ -268,13 +335,13 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">h</span><span class="plain-syntax">, </span><span class="identifier-syntax">heading</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">h</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">heading_package</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP20" class="function-link"><span class="function-syntax">Hierarchy::completion_package</span></a><span class="plain-syntax">(</span><span class="constant-syntax">HEADINGS_HAP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cm.html#SP1_11_1" class="named-paragraph-link"><span class="named-paragraph">Write the details</span><span class="named-paragraph-number">1.11.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-cm.html#SP1_12_1" class="named-paragraph-link"><span class="named-paragraph">Write the details</span><span class="named-paragraph-number">1.12.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">HEADING_INDEXABLE_MD_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-cm.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_11_1" class="paragraph-anchor"></a><b>&#167;1.11.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write the details</span><span class="named-paragraph-number">1.11.1</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP1_12_1" class="paragraph-anchor"></a><b>&#167;1.12.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write the details</span><span class="named-paragraph-number">1.12.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -323,8 +390,8 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">HEADING_INDENTATION_MD_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">h</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">indentation</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-cm.html#SP1_11">&#167;1.11</a> (twice).</li></ul>
<p class="commentary firstcommentary"><a id="SP1_11_2" class="paragraph-anchor"></a><b>&#167;1.11.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Summarise all the objects and kinds created under the given heading</span><span class="named-paragraph-number">1.11.2</span></span><span class="comment-syntax"> =</span>
<ul class="endnotetexts"><li>This code is used in <a href="3-cm.html#SP1_12">&#167;1.12</a> (twice).</li></ul>
<p class="commentary firstcommentary"><a id="SP1_12_2" class="paragraph-anchor"></a><b>&#167;1.12.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Summarise all the objects and kinds created under the given heading</span><span class="named-paragraph-number">1.12.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -338,7 +405,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-cm.html#SP1_11">&#167;1.11</a>.</li></ul>
<ul class="endnotetexts"><li>This code is used in <a href="3-cm.html#SP1_12">&#167;1.12</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b>We index only headings of level 1 and up &mdash; so, not the pseudo-heading or the
File (0) ones &mdash; and which are not within any extensions &mdash; so, are in the
primary source text written by the user.
@ -347,7 +414,7 @@ primary source text written by the user.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">headings_indexed</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompletionModule::index_heading_recursively</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">CompletionModule::index_heading_recursively</span></span>:<br/><a href="3-cm.html#SP1_11">&#167;1.11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">h</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompletionModule::index_heading_recursively</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">CompletionModule::index_heading_recursively</span></span>:<br/><a href="3-cm.html#SP1_12">&#167;1.12</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">h</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">h</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">show_heading</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">h</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">child_heading</span><span class="plain-syntax">;</span>

View file

@ -390,7 +390,7 @@ compiled code, of course.
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">VARIABLE_AT_MD_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">h</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Headings::of_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-cm.html#SP1_10" class="function-link"><span class="function-syntax">CompletionModule::has_heading_id</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">h</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-cm.html#SP1_11" class="function-link"><span class="function-syntax">CompletionModule::has_heading_id</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">h</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_heading</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">VARIABLE_HEADING_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">h</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">VARIABLE_INDEXABLE_MD_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> ((</span><span class="identifier-syntax">h</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">h</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">index_definitions_made_under_this</span><span class="plain-syntax">))?1:0);</span>

View file

@ -1,10 +1,10 @@
Total memory consumption was 142063K = 139 MB
Total memory consumption was 142639K = 139 MB
---- was used for 2129740 objects, in 374753 frames in 0 x 800K = 0K = 0 MB:
---- was used for 2134875 objects, in 374839 frames in 0 x 800K = 0K = 0 MB:
29.7% inter_tree_node_array 60 x 8192 = 491520 objects, 43255680 bytes
19.0% text_stream_array 4930 x 100 = 493000 objects, 27765760 bytes
17.4% linked_list 45355 objects, 25398800 bytes
29.6% inter_tree_node_array 60 x 8192 = 491520 objects, 43255680 bytes
19.1% text_stream_array 4972 x 100 = 497200 objects, 28002304 bytes
17.3% linked_list 45361 objects, 25402160 bytes
9.8% inter_symbol_array 135 x 1024 = 138240 objects, 14381280 bytes
9.6% inter_error_stash_array 107 x 1024 = 109568 objects, 14028128 bytes
7.3% parse_node 133796 objects, 10703680 bytes
@ -15,14 +15,14 @@ Total memory consumption was 142063K = 139 MB
2.2% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes
1.8% kind_array 68 x 1000 = 68000 objects, 2722176 bytes
1.4% inter_schema_token 14176 objects, 2154752 bytes
1.4% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes
1.2% package_request 21344 objects, 1878272 bytes
1.3% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes
1.2% package_request 21349 objects, 1878712 bytes
1.2% vocabulary_entry_array 163 x 100 = 16300 objects, 1830816 bytes
1.1% dict_entry_array 502 x 100 = 50200 objects, 1622464 bytes
1.0% inter_symbols_table 26924 objects, 1507744 bytes
1.1% dict_entry_array 511 x 100 = 51100 objects, 1651552 bytes
1.0% inter_symbols_table 26931 objects, 1508136 bytes
1.0% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes
0.9% i6_schema_array 24 x 100 = 2400 objects, 1440768 bytes
0.8% inter_package 26924 objects, 1292352 bytes
0.8% inter_package 26931 objects, 1292688 bytes
0.7% map_data 677 objects, 1137360 bytes
0.7% id_body 979 objects, 1119976 bytes
0.7% adjective_meaning 208 objects, 1030016 bytes
@ -30,21 +30,21 @@ Total memory consumption was 142063K = 139 MB
0.6% excerpt_meaning 3164 objects, 987168 bytes
0.6% production 3985 objects, 924520 bytes
0.6% ptoken 8652 objects, 899808 bytes
0.6% grammatical_usage 3648 objects, 875520 bytes
0.5% grammatical_usage 3648 objects, 875520 bytes
0.5% individual_form 2581 objects, 867216 bytes
0.4% unary_predicate_array 17 x 1000 = 17000 objects, 680544 bytes
0.3% local_variable_array 49 x 100 = 4900 objects, 471968 bytes
0.2% verb_usage 1148 objects, 394912 bytes
0.2% rule 478 objects, 374752 bytes
0.2% dictionary 7759 objects, 372432 bytes
0.2% dictionary 7761 objects, 372528 bytes
0.2% verb_form 388 objects, 350752 bytes
0.1% noun 2395 objects, 287400 bytes
0.1% compilation_subtask 3388 objects, 271040 bytes
0.1% inference_subject 672 objects, 263424 bytes
0.1% inter_annotation_array 2 x 8192 = 16384 objects, 262208 bytes
0.1% vanilla_function 3809 objects, 243776 bytes
0.1% vanilla_function 3810 objects, 243840 bytes
0.1% binary_predicate 330 objects, 174240 bytes
0.1% hierarchy_location 1190 objects, 171360 bytes
0.1% hierarchy_location 1191 objects, 171504 bytes
0.1% linguistic_stock_item 3338 objects, 160224 bytes
0.1% rule_family_data 404 objects, 148672 bytes
---- nonterminal 773 objects, 142232 bytes
@ -57,7 +57,7 @@ Total memory consumption was 142063K = 139 MB
---- imperative_defn 1417 objects, 102024 bytes
---- noun_usage 2419 objects, 96760 bytes
---- anl_entry_array 2 x 1000 = 2000 objects, 96064 bytes
---- inter_tree 7 objects, 95872 bytes
---- inter_tree 7 objects, 95984 bytes
---- preposition 274 objects, 87680 bytes
---- lexical_cluster 2535 objects, 81120 bytes
---- kind_variable_declaration 1659 objects, 79632 bytes
@ -129,8 +129,8 @@ Total memory consumption was 142063K = 139 MB
---- determiner 22 objects, 7216 bytes
---- inbuild_copy 59 objects, 7080 bytes
---- verb 109 objects, 6976 bytes
---- hierarchy_attachment_point 78 objects, 6864 bytes
---- text_literal_holder 164 objects, 6560 bytes
---- hierarchy_attachment_point 79 objects, 6952 bytes
---- text_literal_holder 169 objects, 6760 bytes
---- inbuild_edition 85 objects, 6120 bytes
---- section_md 62 objects, 5952 bytes
---- parsed_use_option_setting 79 objects, 5688 bytes
@ -258,23 +258,23 @@ Total memory consumption was 142063K = 139 MB
100.0% was used for memory not allocated for objects:
62.9% text stream storage 91603832 bytes in 513458 claims
3.7% dictionary storage 5485056 bytes in 7759 claims
63.0% text stream storage 92061108 bytes in 517660 claims
3.8% dictionary storage 5616640 bytes in 7761 claims
---- sorting 2624 bytes in 531 claims
4.9% source text 7200000 bytes in 3 claims
7.4% source text details 10800000 bytes in 2 claims
7.3% source text details 10800000 bytes in 2 claims
0.1% 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.2% inter symbols storage 4705120 bytes in 28301 claims
11.5% inter bytecode storage 16758212 bytes in 15 claims
3.2% inter symbols storage 4706016 bytes in 28308 claims
11.4% inter bytecode storage 16757820 bytes in 15 claims
4.2% inter links storage 6222976 bytes in 11 claims
0.1% inter tree location list storage 191232 bytes in 32 claims
1.1% instance-of-kind counting 1731856 bytes in 1 claim
---- compilation workspace for objects 21936 bytes in 25 claims
---- lists for type-checking invocations 16000 bytes in 1 claim
---- code generation workspace for objects 3488 bytes in 19 claims
---- code generation workspace for objects 3528 bytes in 19 claims
0.1% emitter array storage 281184 bytes in 2006 claims
-134.-3% was overhead - -195438824 bytes = -190858K = -186 MB
-133.-9% was overhead - -195709688 bytes = -191122K = -186 MB

View file

@ -1,28 +1,28 @@
100.0% in inform7 run
67.9% in compilation to Inter
46.0% in //Sequence::undertake_queued_tasks//
4.1% in //MajorNodes::pre_pass//
3.3% in //MajorNodes::pass_1//
1.8% in //ImperativeDefinitions::assess_all//
1.8% in //RTPhrasebook::compile_entries//
67.6% in compilation to Inter
45.7% in //Sequence::undertake_queued_tasks//
4.2% in //MajorNodes::pre_pass//
3.4% in //MajorNodes::pass_1//
1.9% in //ImperativeDefinitions::assess_all//
1.9% in //RTPhrasebook::compile_entries//
1.5% in //RTKindConstructors::compile//
1.1% in //Sequence::lint_inter//
0.7% in //Sequence::undertake_queued_tasks//
0.3% in //CompletionModule::compile//
0.3% in //ImperativeDefinitions::compile_first_block//
0.3% in //MajorNodes::pass_2//
0.3% in //Sequence::undertake_queued_tasks//
0.3% in //Sequence::undertake_queued_tasks//
0.3% in //World::stage_V//
5.3% not specifically accounted for
27.1% in running Inter pipeline
8.6% in step 14/15: generate inform6 -> auto.inf
7.1% in step 5/15: load-binary-kits
6.0% in step 6/15: make-synoptic-module
1.8% in step 9/15: make-identifiers-unique
27.3% in running Inter pipeline
8.8% in step 14/15: generate inform6 -> auto.inf
7.3% in step 5/15: load-binary-kits
5.7% in step 6/15: make-synoptic-module
1.9% 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
1.9% not specifically accounted for
4.1% in supervisor
0.8% not specifically accounted for
2.0% not specifically accounted for
3.8% in supervisor
1.2% not specifically accounted for

View file

@ -65,7 +65,7 @@ virtual machine opcode which crashes on divide by zero.
=
[ IntegerDivide A B;
if (B == 0) { RunTimeProblem(RTP_DIVZERO); rfalse; }
if (B == 0) { IssueRTP("DividedByZero", "You can't divide by zero.", BasicInformKitRTPs); rfalse; }
return A/B;
];
@ -74,7 +74,7 @@ Similarly.
=
[ IntegerRemainder A B;
if (B == 0) { RunTimeProblem(RTP_DIVZERO); rfalse; }
if (B == 0) { IssueRTP("DividedByZero", "You can't divide by zero.", BasicInformKitRTPs); rfalse; }
return A%B;
];

View file

@ -19,7 +19,26 @@ message; |ln| is an optional parameter specifying a paragraph number in the
original source text (though in fact I7 does not use this at present).
=
Array RTP_Buffer --> (-1) 0 0 0 0 0 0;
Array RTP_Buffer --> (-1) 0 0 0 0 0 0 0 0;
[ IssueRTP n desc set par1 par2 par3 ln file;
if ((n ofclass String) &&
((desc ofclass String) || (desc ofclass Routine)) &&
(set ofclass String)) {
if (RTP_Buffer-->0 == -1) {
RTP_Buffer-->0 = n;
RTP_Buffer-->1 = par1;
RTP_Buffer-->2 = par2;
RTP_Buffer-->3 = par3;
RTP_Buffer-->4 = ln;
RTP_Buffer-->5 = file;
RTP_Buffer-->7 = desc;
RTP_Buffer-->8 = set;
}
RunTimeProblemShow();
} else {
"*** Improper call to IssueRTP ***";
}
];
[ RunTimeProblem n par1 par2 par3 ln file;
if (RTP_Buffer-->0 == -1) {
RTP_Buffer-->0 = n;
@ -28,6 +47,8 @@ Array RTP_Buffer --> (-1) 0 0 0 0 0 0;
RTP_Buffer-->3 = par3;
RTP_Buffer-->4 = ln;
RTP_Buffer-->5 = file;
RTP_Buffer-->7 = 0;
RTP_Buffer-->8 = 0;
}
RunTimeProblemShow();
];
@ -41,7 +62,7 @@ Array RTP_Buffer --> (-1) 0 0 0 0 0 0;
[ ResumeRTP;
RTP_Buffer-->6 = false;
];
[ RunTimeProblemShow n par1 par2 par3 ln file i c;
[ RunTimeProblemShow n par1 par2 par3 ln file i c desc;
if (RTP_Buffer-->0 == -1 or -2) return;
if (RTP_Buffer-->6) return;
@ -54,129 +75,133 @@ Array RTP_Buffer --> (-1) 0 0 0 0 0 0;
RTP_Buffer-->0 = -2;
new_line;
print "*** Run-time problem P", n;
if (ln) {
print " (at paragraph ", ln, " in ";
if (file == 0) print "the source text";
else ShowOneExtension(file);
print ")";
print "*** Run-time problem ";
if (n ofclass String) print (string) n;
else print "P", n;
#ifdef DEBUG;
if (RTP_Buffer-->8) { print ": ", (string) RTP_Buffer-->8; }
#endif;
print "^*** ";
desc = RTP_Buffer-->7;
if (desc ofclass String) print (string) desc, "^";
else if (desc ofclass Routine) desc(par1, par2, par3);
else {
switch(n) {
RTP_IMPREL:
print "Tried to access an inappropriate relation for ", (the) par1,
", violating '", (string) RlnGetF(par2, RR_DESCRIPTION), "'.^";
RTP_TOOMANYRULEBOOKS:
print "Too many rulebooks in simultaneous use.^";
RTP_BADPROPERTY:
print "Tried to access non-existent property for ", (the) par1, ".^";
RTP_UNPROVIDED:
print "Since ", (the) par1, " is not allowed the property ~",
(PrintPropertyName) par2, "~, it is against the rules to try to use it.^";
RTP_UNSET:
print "Although ", (the) par1, " is allowed to have the property ~",
(PrintPropertyName) par2, "~, no value was ever given, so it can't now be used.^";
RTP_TOOMANYACTS:
print "Too many activities are going on at once.^";
RTP_CANTABANDON:
print "Tried to abandon an activity which wasn't going on.^";
RTP_CANTEND:
print "Tried to end an activity which wasn't going on.^";
RTP_DIVZERO:
print "You can't divide by zero.^";
RTP_BADVALUEPROPERTY:
print "Tried to access property for a value which didn't fit: ",
"if this were a number it would be ", par1, ".^";
RTP_TABLE_NOCOL:
print "Attempt to look up a non-existent column in the table '",
(PrintTableName) par1, "'.^";
RTP_TABLE_NOCORR:
print "Attempt to look up a non-existent correspondence in the table '",
(PrintTableName) par1, "'.^";
RTP_TABLE_NOROW:
print "Attempt to look up a non-existent row in the table '",
(PrintTableName) par1, "'.^";
RTP_TABLE_NOENTRY:
print "Attempt to look up a non-existent entry at column ", par2,
", row ", par3, " of the table '", (PrintTableName) par1, "'.^";
RTP_TABLE_NOTABLE:
print "Attempt to blank out a row from a non-existent table (value ",
par1, ").^";
RTP_TABLE_NOTABLE2:
print "Attempt to access an entry from a non-existent table.^";
RTP_TABLE_NOMOREBLANKS:
print "Attempt to choose a blank row in a table with none left: table '",
(PrintTableName) par1, "'.^";
RTP_TABLE_NOROWS:
print "Attempt to choose a random row in an entirely blank table: table '",
(PrintTableName) par1, "'.^";
RTP_TABLE_CANTRUNTHROUGH:
print "Attempt to repeat through a table in a tricky column order: table '",
(PrintTableName) par1, "'.^";
RTP_TABLE_CANTSORT:
print "Attempt to sort a table whose ordering must remain fixed: table '",
(PrintTableName) par1, "'.^";
RTP_TABLE_CANTSAVE:
print "Attempt to save a table to a file whose data is unstable: table '",
(PrintTableName) par1, "'.^";
RTP_TABLE_WONTFIT:
print "File being read has too many rows or columns to fit into table: table '",
(PrintTableName) par1, "'.^";
RTP_TABLE_BADFILE:
print "File being read is not a previously saved table: table '",
(PrintTableName) par1, "'.^";
RTP_ROUTELESS:
print "Attempt to find route or count steps through an implicit
relation.^";
RTP_PROPOFNOTHING:
print "Attempt to use a property of the 'nothing' non-object: property ",
(PrintPropertyName) par2, "^";
RTP_DECIDEONWRONGKIND:
print "Attempt to 'decide on V' where V is the wrong kind of object.^";
RTP_DECIDEONNOTHING:
print "Attempt to 'decide on nothing'.^";
RTP_LOWLEVELERROR:
print "Low level error.^";
RTP_LISTWRITERMEMORY:
print "The list-writer has run out of memory.^";
RTP_MSTACKMEMORY:
print "The memory stack is exhausted.^";
RTP_TYPECHECK:
print "Phrase applied to an incompatible kind of value.^";
RTP_FILEIOERROR:
print "Error handling external file.^";
RTP_HEAPERROR:
print "Memory allocation proved impossible.^";
RTP_LISTRANGEERROR:
print "Attempt to use list item which does not exist.^";
RTP_LISTSIZENEGATIVE:
print "Attempt to resize list to ", par1, " entries - there must ",
"always be 0 or more.^";
RTP_REGEXPSYNTAXERROR:
print "Syntax error in regular expression.^";
RTP_NEGATIVEROOT:
print "You can't take the square root of a negative number.^";
RTP_CANTITERATE:
print "You can't implicitly repeat through the values of this kind: ",
"a problem arising from a description which started out here - ~",
(string) par1, "~.^";
RTP_WRONGASSIGNEDKIND:
print "Attempt to set a variable to the wrong kind of object: ",
"you wrote '", (string) par2, "', which sets the value to ", (the) par1,
" - but that doesn't have the kind '", (string) par3, "'.^";
RTP_RELKINDVIOLATION:
print "Tried to change a relation for objects with the wrong kinds: ",
(string) RlnGetF(par3, RR_DESCRIPTION), ", but you tried to ",
"relate (or unrelate) ", (the) par1, " to ", (the) par2, ".^";
RTP_TEXTTOKENTOOHARD:
print "This use of '[text]' is too complicated.^";
RTP_RELATIONCHANGEIMPOSSIBLE:
print "This change of the relation's nature is impossible in play.^";
RTP_RELMINIMAL:
print "This operation can't be done with the relation '",
(string) RlnGetF(par3, RR_DESCRIPTION), "'.^";
}
RunTimeProblemShowWM(n, par1, par2, par3);
}
print ": ";
switch(n) {
RTP_IMPREL:
print "Tried to access an inappropriate relation for ", (the) par1,
", violating '", (string) RlnGetF(par2, RR_DESCRIPTION), "'.^";
RTP_TOOMANYRULEBOOKS:
print "Too many rulebooks in simultaneous use.^";
RTP_BADPROPERTY:
print "Tried to access non-existent property for ", (the) par1, ".^";
RTP_UNPROVIDED:
print "Since ", (the) par1, " is not allowed the property ~",
(PrintPropertyName) par2, "~, it is against the rules to try to use it.^";
RTP_UNSET:
print "Although ", (the) par1, " is allowed to have the property ~",
(PrintPropertyName) par2, "~, no value was ever given, so it can't now be used.^";
RTP_TOOMANYACTS:
print "Too many activities are going on at once.^";
RTP_CANTABANDON:
print "Tried to abandon an activity which wasn't going on.^";
RTP_CANTEND:
print "Tried to end an activity which wasn't going on.^";
RTP_DIVZERO:
print "You can't divide by zero.^";
RTP_BADVALUEPROPERTY:
print "Tried to access property for a value which didn't fit: ",
"if this were a number it would be ", par1, ".^";
RTP_TABLE_NOCOL:
print "Attempt to look up a non-existent column in the table '",
(PrintTableName) par1, "'.^";
RTP_TABLE_NOCORR:
print "Attempt to look up a non-existent correspondence in the table '",
(PrintTableName) par1, "'.^";
RTP_TABLE_NOROW:
print "Attempt to look up a non-existent row in the table '",
(PrintTableName) par1, "'.^";
RTP_TABLE_NOENTRY:
print "Attempt to look up a non-existent entry at column ", par2,
", row ", par3, " of the table '", (PrintTableName) par1, "'.^";
RTP_TABLE_NOTABLE:
print "Attempt to blank out a row from a non-existent table (value ",
par1, ").^";
RTP_TABLE_NOTABLE2:
print "Attempt to access an entry from a non-existent table.^";
RTP_TABLE_NOMOREBLANKS:
print "Attempt to choose a blank row in a table with none left: table '",
(PrintTableName) par1, "'.^";
RTP_TABLE_NOROWS:
print "Attempt to choose a random row in an entirely blank table: table '",
(PrintTableName) par1, "'.^";
RTP_TABLE_CANTRUNTHROUGH:
print "Attempt to repeat through a table in a tricky column order: table '",
(PrintTableName) par1, "'.^";
RTP_TABLE_CANTSORT:
print "Attempt to sort a table whose ordering must remain fixed: table '",
(PrintTableName) par1, "'.^";
RTP_TABLE_CANTSAVE:
print "Attempt to save a table to a file whose data is unstable: table '",
(PrintTableName) par1, "'.^";
RTP_TABLE_WONTFIT:
print "File being read has too many rows or columns to fit into table: table '",
(PrintTableName) par1, "'.^";
RTP_TABLE_BADFILE:
print "File being read is not a previously saved table: table '",
(PrintTableName) par1, "'.^";
RTP_ROUTELESS:
print "Attempt to find route or count steps through an implicit
relation.^";
RTP_PROPOFNOTHING:
print "Attempt to use a property of the 'nothing' non-object: property ",
(PrintPropertyName) par2, "^";
RTP_DECIDEONWRONGKIND:
print "Attempt to 'decide on V' where V is the wrong kind of object.^";
RTP_DECIDEONNOTHING:
print "Attempt to 'decide on nothing'.^";
RTP_LOWLEVELERROR:
print "Low level error.^";
RTP_LISTWRITERMEMORY:
print "The list-writer has run out of memory.^";
RTP_MSTACKMEMORY:
print "The memory stack is exhausted.^";
RTP_TYPECHECK:
print "Phrase applied to an incompatible kind of value.^";
RTP_FILEIOERROR:
print "Error handling external file.^";
RTP_HEAPERROR:
print "Memory allocation proved impossible.^";
RTP_LISTRANGEERROR:
print "Attempt to use list item which does not exist.^";
RTP_LISTSIZENEGATIVE:
print "Attempt to resize list to ", par1, " entries - there must ",
"always be 0 or more.^";
RTP_REGEXPSYNTAXERROR:
print "Syntax error in regular expression.^";
RTP_NEGATIVEROOT:
print "You can't take the square root of a negative number.^";
RTP_CANTITERATE:
print "You can't implicitly repeat through the values of this kind: ",
"a problem arising from a description which started out here - ~",
(string) par1, "~.^";
RTP_WRONGASSIGNEDKIND:
print "Attempt to set a variable to the wrong kind of object: ",
"you wrote '", (string) par2, "', which sets the value to ", (the) par1,
" - but that doesn't have the kind '", (string) par3, "'.^";
RTP_RELKINDVIOLATION:
print "Tried to change a relation for objects with the wrong kinds: ",
(string) RlnGetF(par3, RR_DESCRIPTION), ", but you tried to ",
"relate (or unrelate) ", (the) par1, " to ", (the) par2, ".^";
RTP_TEXTTOKENTOOHARD:
print "This use of '[text]' is too complicated.^";
RTP_RELATIONCHANGEIMPOSSIBLE:
print "This change of the relation's nature is impossible in play.^";
RTP_RELMINIMAL:
print "This operation can't be done with the relation '",
(string) RlnGetF(par3, RR_DESCRIPTION), "'.^";
}
RunTimeProblemShowWM(n, par1, par2, par3);
print "^";
];

View file

@ -234,6 +234,8 @@ void Hierarchy::establish(void) {
@e HEADING_WORD_COUNT_MD_HL
@e HEADING_SUMMARY_MD_HL
@e HEADING_ID_HL
@e RTPS_HAP
@e RTP_SOURCE_HL
@e DEBUGGING_ASPECTS_HAP
@e DEBUGGING_ASPECT_NAME_MD_HL
@e DEBUGGING_ASPECT_USED_MD_HL
@ -270,6 +272,9 @@ void Hierarchy::establish(void) {
H_C_U(HEADING_SUMMARY_MD_HL, I"^summary")
H_C_U(HEADING_ID_HL, I"id")
H_END
H_BEGIN_AP(RTPS_HAP, I"rtp_source", I"_rtp_source")
H_C_U(RTP_SOURCE_HL, I"location")
H_END
H_BEGIN_AP(DEBUGGING_ASPECTS_HAP, I"debugging_aspect", I"_debugging_aspect")
H_C_U(DEBUGGING_ASPECT_NAME_MD_HL, I"^name")
H_C_U(DEBUGGING_ASPECT_USED_MD_HL, I"^used")

View file

@ -14,6 +14,7 @@ void CompletionModule::compile(void) {
@<RNG seed@>;
@<Max indexed thumbnails@>;
@<Headings@>;
@<Kit relative paths@>;
@<Debugging log aspects@>;
}
@ -87,6 +88,64 @@ void CompletionModule::compile(void) {
Emit::numeric_constant(iname,
(inter_ti) global_compilation_settings.index_figure_thumbnails);
@<Kit relative paths@> =
inform_project *proj = Task::project();
kit_dependency *kd;
LOOP_OVER_LINKED_LIST(kd, kit_dependency, proj->kits_to_include) {
pathname *P = kd->kit->as_copy->location_if_path;
text_stream *name = kd->kit->as_copy->edition->work->title;
TEMPORARY_TEXT(identifier)
WRITE_TO(identifier, "%SRTPs", name);
@<Define an RTP location for P with this name@>;
DISCARD_TEXT(identifier)
}
inform_extension *E;
LOOP_OVER_LINKED_LIST(E, inform_extension, proj->extensions_included) {
pathname *P = E->as_copy->location_if_path;
if (P) {
text_stream *name = E->as_copy->edition->work->title;
TEMPORARY_TEXT(identifier)
LOOP_THROUGH_TEXT(pos, name)
if (Str::get(pos) != ' ')
PUT_TO(identifier, Str::get(pos));
WRITE_TO(identifier, "RTPs");
@<Define an RTP location for P with this name@>;
DISCARD_TEXT(identifier)
}
}
@<Define an RTP location for P with this name@> =
TEMPORARY_TEXT(at)
TEMPORARY_TEXT(P_text)
WRITE_TO(P_text, "%p", P);
TEMPORARY_TEXT(M_text)
WRITE_TO(M_text, "%p", Projects::materials_path(proj));
TEMPORARY_TEXT(I_text)
if (Supervisor::installed_files())
WRITE_TO(I_text, "%p", Supervisor::installed_files());
if (Str::begins_with(P_text, M_text)) {
WRITE_TO(at, "MATERIALS/");
Pathnames::to_text_relative(at, Projects::materials_path(proj), P);
} else if ((Str::len(I_text) > 0) && (Str::begins_with(P_text, I_text))) {
WRITE_TO(at, "INTERNAL/");
Pathnames::to_text_relative(at, Supervisor::installed_files(), P);
} else {
WRITE_TO(at, "%S", P_text);
}
LOG("DEFINE %S = %S.\n", identifier, at);
package_request *pack = Hierarchy::completion_package(RTPS_HAP);
inter_name *iname = Hierarchy::make_iname_in(RTP_SOURCE_HL, pack);
InterNames::set_translation(iname, identifier);
InterNames::clear_flag(iname, MAKE_NAME_UNIQUE_ISYMF);
Emit::text_constant(iname, at);
Hierarchy::make_available(iname);
DISCARD_TEXT(at)
DISCARD_TEXT(P_text)
DISCARD_TEXT(M_text)
DISCARD_TEXT(I_text)
@<Debugging log aspects@> =
for (int i=0; i<NO_DEFINED_DA_VALUES; i++) {
debugging_aspect *da = &(the_debugging_aspects[i]);