1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-06-17 07:40:47 +03:00

Improved pipeline error messages

This commit is contained in:
Graham Nelson 2021-11-15 22:44:29 +00:00
parent 70ca4155bf
commit 77b894001d
63 changed files with 363 additions and 359 deletions

View file

@ -1,6 +1,6 @@
# Inform 7
v10.1.0-alpha.1+6T74 'Krypton' (14 November 2021)
v10.1.0-alpha.1+6T75 'Krypton' (15 November 2021)
## About Inform 7

View file

@ -1,3 +1,3 @@
Prerelease: alpha.1
Build Date: 14 November 2021
Build Number: 6T74
Build Date: 15 November 2021
Build Number: 6T75

View file

@ -188,7 +188,7 @@ form, which would be written to <span class="extract"><span class="extract-synta
<span class="plain-syntax"> </span><span class="identifier-syntax">SS</span><span class="plain-syntax"> = </span><a href="../pipeline-module/2-pp.html#SP5" class="function-link"><span class="function-syntax">ParsingPipelines::from_file</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pipeline_as_file</span><span class="plain-syntax">, </span><span class="identifier-syntax">pipeline_vars</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">SS</span><span class="plain-syntax"> = </span><a href="../pipeline-module/2-pp.html#SP5" class="function-link"><span class="function-syntax">ParsingPipelines::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pipeline_as_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">pipeline_vars</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">requirements_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_library</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">requirements_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">attachment_instruction</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SS</span><span class="plain-syntax">) </span><a href="../pipeline-module/2-rp.html#SP3" class="function-link"><span class="function-syntax">RunningPipelines::run</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">domain_path</span><span class="plain-syntax">, </span><span class="identifier-syntax">SS</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_paths</span><span class="plain-syntax">, </span><span class="identifier-syntax">requirements_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal</span></a><span class="plain-syntax">(</span><span class="string-syntax">"pipeline could not be parsed"</span><span class="plain-syntax">);</span>
</pre>

View file

@ -90,7 +90,7 @@ which use this module:
<span class="definition-keyword">enum</span> <span class="constant-syntax">text_literal_holder_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">routine_body_request_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">pipeline_stage_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">link_instruction_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">attachment_instruction_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">tree_inventory_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">tree_inventory_item_CLASS</span>
</pre>
@ -102,7 +102,7 @@ which use this module:
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_literal_holder</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">routine_body_request</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_stage</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">link_instruction</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">attachment_instruction</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">tree_inventory</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">tree_inventory_item</span><span class="plain-syntax">)</span>
</pre>
@ -174,12 +174,12 @@ is where:
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">inter_architecture</span><span class="plain-syntax"> *</span><span class="function-syntax">PipelineModule::get_architecture</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">PipelineModule::get_architecture</span></span>:<br/>Link - <a href="3-lnk.html#SP2">&#167;2</a><br/>Prepare - <a href="3-prp.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">inter_architecture</span><span class="plain-syntax"> *</span><span class="function-syntax">PipelineModule::get_architecture</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">PipelineModule::get_architecture</span></span>:<br/>Attach Stage - <a href="3-as.html#SP1">&#167;1</a><br/>Prepare - <a href="3-prp.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">architecture_set_at_command_line</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="P-wtmd.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresscurrentchapter">1</li><li class="progresscurrent">pm</li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="2-pp.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="P-wtmd.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresscurrentchapter">1</li><li class="progresscurrent">pm</li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="2-pp.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -98,7 +98,7 @@ pointers to trees being worked on.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<ul class="endnotetexts"><li>The structure inter_pipeline is accessed in 2/rp, 2/rmws, 3/lnk, 3/prp, 3/mt, 3/plm, 3/rcc, 3/ass, 3/res, 3/ip, 3/dic, 3/unq, 3/rv, 4/su, 5/erm, 5/erl, 5/ero and here.</li></ul>
<ul class="endnotetexts"><li>The structure inter_pipeline is accessed in 2/rp, 2/rmws, 3/as, 3/prp, 3/mt, 3/plm, 3/rcc, 3/ass, 3/res, 3/ip, 3/dic, 3/unq, 3/rv, 4/su, 5/erm, 5/erl, 5/ero and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b>A <a href="2-pp.html#SP2" class="internal">pipeline_step</a> is really only a choice of <a href="2-pp.html#SP3" class="internal">pipeline_stage</a>, but comes
along with a wide variety of options and parameter settings, so that it looks
much more complicated than it actually is.
@ -130,7 +130,7 @@ much more complicated than it actually is.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">step</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<ul class="endnotetexts"><li>The structure pipeline_step is accessed in 2/rp, 2/rmws, 3/lnk, 3/prp, 3/mt, 3/plm, 3/rcc, 3/ass, 3/res, 3/ip, 3/dic, 3/unq, 3/rv, 4/su, 5/erm, 5/erl, 5/ero and here.</li></ul>
<ul class="endnotetexts"><li>The structure pipeline_step is accessed in 2/rp, 2/rmws, 3/as, 3/prp, 3/mt, 3/plm, 3/rcc, 3/ass, 3/res, 3/ip, 3/dic, 3/unq, 3/rv, 4/su, 5/erm, 5/erl, 5/ero and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>And a <a href="2-pp.html#SP3" class="internal">pipeline_stage</a> is simply a choice of what to do. For example,
<span class="extract"><span class="extract-syntax">eliminate-redundant-labels</span></span> is a pipeline stage. This would need to be
combined with details of what tree to apply to in order to become a step.
@ -154,7 +154,7 @@ combined with details of what tree to apply to in order to become a step.
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">pipeline_stage</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">pipeline_stage</span><span class="plain-syntax"> *</span><span class="function-syntax">ParsingPipelines::new_stage</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">ParsingPipelines::new_stage</span></span>:<br/>Read, Move, Wipe, Stop - <a href="2-rmws.html#SP1">&#167;1</a><br/>Link - <a href="3-lnk.html#SP2">&#167;2</a><br/>Prepare - <a href="3-prp.html#SP1">&#167;1</a><br/>Linker - <a href="3-mt.html#SP1">&#167;1</a><br/>Parse Linked Matter - <a href="3-plm.html#SP1">&#167;1</a><br/>Resolving Conditional Compilation - <a href="3-rcc.html#SP1">&#167;1</a><br/>Assimilate Linked Matter - <a href="3-ass.html#SP1">&#167;1</a><br/>Resolve External Symbols - <a href="3-res.html#SP1">&#167;1</a><br/>Inspect Plugs - <a href="3-ip.html#SP1">&#167;1</a><br/>Detect Indirect Calls - <a href="3-dic.html#SP1">&#167;1</a><br/>Uniqueness - <a href="3-unq.html#SP1">&#167;1</a><br/>Reconcile Verbs - <a href="3-rv.html#SP1">&#167;1</a><br/>Synoptic Utilities - <a href="4-su.html#SP1">&#167;1</a><br/>Eliminate Redundant Matter - <a href="5-erm.html#SP1">&#167;1</a><br/>Eliminate Redundant Labels - <a href="5-erl.html#SP1">&#167;1</a><br/>Eliminate Redundant Operations - <a href="5-ero.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">,</span>
<span class="reserved-syntax">pipeline_stage</span><span class="plain-syntax"> *</span><span class="function-syntax">ParsingPipelines::new_stage</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">ParsingPipelines::new_stage</span></span>:<br/>Read, Move, Wipe, Stop - <a href="2-rmws.html#SP1">&#167;1</a><br/>Attach Stage - <a href="3-as.html#SP1">&#167;1</a><br/>Prepare - <a href="3-prp.html#SP1">&#167;1</a><br/>Linker - <a href="3-mt.html#SP1">&#167;1</a><br/>Parse Linked Matter - <a href="3-plm.html#SP1">&#167;1</a><br/>Resolving Conditional Compilation - <a href="3-rcc.html#SP1">&#167;1</a><br/>Assimilate Linked Matter - <a href="3-ass.html#SP1">&#167;1</a><br/>Resolve External Symbols - <a href="3-res.html#SP1">&#167;1</a><br/>Inspect Plugs - <a href="3-ip.html#SP1">&#167;1</a><br/>Detect Indirect Calls - <a href="3-dic.html#SP1">&#167;1</a><br/>Uniqueness - <a href="3-unq.html#SP1">&#167;1</a><br/>Reconcile Verbs - <a href="3-rv.html#SP1">&#167;1</a><br/>Synoptic Utilities - <a href="4-su.html#SP1">&#167;1</a><br/>Eliminate Redundant Matter - <a href="5-erm.html#SP1">&#167;1</a><br/>Eliminate Redundant Labels - <a href="5-erl.html#SP1">&#167;1</a><br/>Eliminate Redundant Operations - <a href="5-ero.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</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">X</span><span class="plain-syntax">)(</span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *), </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">tr</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">pipeline_stage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">stage</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_stage</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">stage_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
@ -406,7 +406,7 @@ file to specify a new one.
<span class="plain-syntax"> </span><a href="2-rmws.html#SP1" class="function-link"><span class="function-syntax">SimpleStages::create_pipeline_stages</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CodeGen::create_pipeline_stage</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="3-prp.html#SP1" class="function-link"><span class="function-syntax">CodeGen::Architecture::create_pipeline_stage</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="3-lnk.html#SP2" class="function-link"><span class="function-syntax">CodeGen::LinkInstructions::create_pipeline_stage</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="3-as.html#SP1" class="function-link"><span class="function-syntax">AttachStage::create_pipeline_stage</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="3-ass.html#SP1" class="function-link"><span class="function-syntax">CodeGen::Assimilate::create_pipeline_stage</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="3-dic.html#SP1" class="function-link"><span class="function-syntax">DetectIndirectCalls::create_pipeline_stage</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="5-erm.html#SP1" class="function-link"><span class="function-syntax">CodeGen::Eliminate::create_pipeline_stage</span></a><span class="plain-syntax">();</span>
@ -446,7 +446,7 @@ So the following utility is convenient for getting started.
</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">ParsingPipelines::write_step</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">ParsingPipelines::write_step</span></span>:<br/>Running Pipelines - <a href="2-rp.html#SP3_1">&#167;3.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ParsingPipelines::write_step</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">ParsingPipelines::write_step</span></span>:<br/>Running Pipelines - <a href="2-rp.html#SP3_1">&#167;3.1</a>, <a href="2-rp.html#SP7_2">&#167;7.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">step_stage</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">stage_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">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">step_stage</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">stage_arg</span><span class="plain-syntax"> != </span><span class="constant-syntax">NO_STAGE_ARG</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">repository_argument</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
@ -466,7 +466,7 @@ So the following utility is convenient for getting started.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="1-pm.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresscurrent">pp</li><li class="progresssection"><a href="2-rp.html">rp</a></li><li class="progresssection"><a href="2-rmws.html">rmws</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="2-rp.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="1-pm.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresscurrent">pp</li><li class="progresssection"><a href="2-rp.html">rp</a></li><li class="progresssection"><a href="2-rmws.html">rmws</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="2-rp.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -103,15 +103,23 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Regexp::match</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">step_argument</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"(%d):(%c+)"</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">from_rep</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::atoi</span><span class="plain-syntax">(</span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0], </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">pipeline</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">repositories</span><span class="plain-syntax">[</span><span class="identifier-syntax">from_rep</span><span class="plain-syntax">] == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no such repository"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">pipeline</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">repositories</span><span class="plain-syntax">[</span><span class="identifier-syntax">from_rep</span><span class="plain-syntax">] == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-rp.html#SP7" class="function-link"><span class="function-syntax">RunningPipelines::error_with</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="string-syntax">"there is no Inter tree in slot %S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0]);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::by_url</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">pipeline</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">repositories</span><span class="plain-syntax">[</span><span class="identifier-syntax">from_rep</span><span class="plain-syntax">], </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[1]);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-rp.html#SP7" class="function-link"><span class="function-syntax">RunningPipelines::error_with</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="string-syntax">"that tree has no such package as '%S'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[1]);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><a href="2-rp.html#SP7" class="function-link"><span class="function-syntax">RunningPipelines::error_with</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"destination should take the form 'N:URL', not '%S'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[1]);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Regexp::dispose_of</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">mr</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"not a package"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Transmigration::move</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">Site::main_package</span><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">repository</span><span class="plain-syntax">), </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
@ -133,7 +141,7 @@ the pipeline:
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-rp.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-pp.html">pp</a></li><li class="progresssection"><a href="2-rp.html">rp</a></li><li class="progresscurrent">rmws</li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-lnk.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-rp.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-pp.html">pp</a></li><li class="progresssection"><a href="2-rp.html">rp</a></li><li class="progresscurrent">rmws</li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-as.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -100,7 +100,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">to_debugging_log</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">from_memory</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to_stream</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">requirements_list</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">inter_library</span></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">requirements_list</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">attachment_instruction</span></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">repository</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inter_pipeline</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pipeline</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="identifier-syntax">for_VM</span><span class="plain-syntax">;</span>
@ -117,7 +117,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">the_PP</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">step</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">repository</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">step</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">pipeline</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">step</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">requirements_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_library</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">requirements_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">attachment_instruction</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">for_VM</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">step</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">package_argument</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="constant-syntax">MAX_RPSYM</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
@ -126,7 +126,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
<ul class="endnotetexts"><li>The structure pipeline_step_ephemera is accessed in 2/pp, 2/rmws, 3/lnk, 3/prp, 3/mt, 3/plm, 3/rcc, 3/ass, 3/res, 3/ip, 3/dic, 3/unq, 3/rv, 4/su, 5/erm, 5/erl, 5/ero and here.</li></ul>
<ul class="endnotetexts"><li>The structure pipeline_step_ephemera is accessed in 2/pp, 2/rmws, 3/as, 3/prp, 3/mt, 3/plm, 3/rcc, 3/ass, 3/res, 3/ip, 3/dic, 3/unq, 3/rv, 4/su, 5/erm, 5/erl, 5/ero and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>This outer layer is all just instrumentation, really: we run through the
steps in turn, timing how long each one took us.
</p>
@ -193,7 +193,7 @@ avoid repeatedly linting the same tree, since that really would be slow.
<span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">repositories</span><span class="plain-syntax">[</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">repository_argument</span><span class="plain-syntax">] = </span><span class="identifier-syntax">InterTree::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">repositories</span><span class="plain-syntax">[</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">repository_argument</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-rp.html#SP7" class="function-link"><span class="function-syntax">RunningPipelines::error</span></a><span class="plain-syntax">(</span><span class="string-syntax">"no Inter tree to apply this step to"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-rp.html#SP7" class="function-link"><span class="function-syntax">RunningPipelines::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="string-syntax">"no Inter tree to apply this step to"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">active</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax"> != </span><span class="identifier-syntax">last_linted</span><span class="plain-syntax">) { </span><span class="identifier-syntax">Inter::Defn::lint</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">); </span><span class="identifier-syntax">last_linted</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="plain-syntax">; }</span>
@ -205,7 +205,7 @@ avoid repeatedly linting the same tree, since that really would be slow.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">VM</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">take_generator_argument_from_VM</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">generator_argument</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Generators::find_for</span><span class="plain-syntax">(</span><span class="identifier-syntax">VM</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">generator_argument</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-rp.html#SP7" class="function-link"><span class="function-syntax">RunningPipelines::error</span></a><span class="plain-syntax">(</span><span class="string-syntax">"unable to guess a suitable code-generator"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-rp.html#SP7" class="function-link"><span class="function-syntax">RunningPipelines::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="string-syntax">"unable to guess a suitable code-generator"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">active</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
@ -214,7 +214,7 @@ avoid repeatedly linting the same tree, since that really would be slow.
<span class="plain-syntax"> </span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">package_argument</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Packages::by_url</span><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">package_URL_argument</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">package_argument</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-rp.html#SP7" class="function-link"><span class="function-syntax">RunningPipelines::error_with</span></a><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><a href="2-rp.html#SP7" class="function-link"><span class="function-syntax">RunningPipelines::error_with</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"pipeline step applied to package which does not exist: '%S'"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">package_URL_argument</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">active</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
@ -229,7 +229,7 @@ avoid repeatedly linting the same tree, since that really would be slow.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-pp.html#SP4" class="function-link"><span class="function-syntax">ParsingPipelines::will_write_a_file</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="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">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">step_argument</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">step_stage</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">stage_arg</span><span class="plain-syntax"> != </span><span class="constant-syntax">OPTIONAL_TEXT_OUT_STAGE_ARG</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-rp.html#SP7" class="function-link"><span class="function-syntax">RunningPipelines::error</span></a><span class="plain-syntax">(</span><span class="string-syntax">"no filename given in pipeline step"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-rp.html#SP7" class="function-link"><span class="function-syntax">RunningPipelines::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="string-syntax">"no filename given in pipeline step"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">active</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
@ -241,7 +241,7 @@ avoid repeatedly linting the same tree, since that really would be slow.
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_output_struct</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">T</span><span class="plain-syntax"> = &amp;</span><span class="identifier-syntax">text_output_struct</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">STREAM_OPEN_TO_FILE</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">parsed_filename</span><span class="plain-syntax">, </span><span class="identifier-syntax">ISO_ENC</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-rp.html#SP7" class="function-link"><span class="function-syntax">RunningPipelines::error</span></a><span class="plain-syntax">(</span><span class="string-syntax">"unable to open file named in pipeline step"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-rp.html#SP7" class="function-link"><span class="function-syntax">RunningPipelines::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="string-syntax">"unable to open file named in pipeline step"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">active</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">to_stream</span><span class="plain-syntax"> = </span><span class="identifier-syntax">T</span><span class="plain-syntax">;</span>
@ -252,11 +252,11 @@ avoid repeatedly linting the same tree, since that really would be slow.
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-pp.html#SP4" class="function-link"><span class="function-syntax">ParsingPipelines::will_read_a_file</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="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">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">step_argument</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-rp.html#SP7" class="function-link"><span class="function-syntax">RunningPipelines::error</span></a><span class="plain-syntax">(</span><span class="string-syntax">"no filename given in pipeline step"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-rp.html#SP7" class="function-link"><span class="function-syntax">RunningPipelines::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="string-syntax">"no filename given in pipeline step"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">active</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">step_argument</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"*memory"</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">step_stage</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">stage_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"read"</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-rp.html#SP7" class="function-link"><span class="function-syntax">RunningPipelines::error</span></a><span class="plain-syntax">(</span><span class="string-syntax">"'*memory' can be used only on reads"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-rp.html#SP7" class="function-link"><span class="function-syntax">RunningPipelines::error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="string-syntax">"'*memory' can be used only on reads"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">active</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">repositories</span><span class="plain-syntax">[</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">repository_argument</span><span class="plain-syntax">] =</span>
@ -466,44 +466,87 @@ complete halt. It's the kindest way.
</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">RunningPipelines::error</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">RunningPipelines::error</span></span>:<br/><a href="2-rp.html#SP3_1_1">&#167;3.1.1</a>, <a href="2-rp.html#SP3_1_2">&#167;3.1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">erm</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">PROBLEMS_MODULE</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RunningPipelines::error</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">RunningPipelines::error</span></span>:<br/><a href="2-rp.html#SP3_1_1">&#167;3.1.1</a>, <a href="2-rp.html#SP3_1_2">&#167;3.1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">erm</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">CORE_MODULE</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-rp.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Begin problem message using the module of the same name</span><span class="named-paragraph-number">7.1</span></a></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">full</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">full</span><span class="plain-syntax">, </span><span class="string-syntax">"%s"</span><span class="plain-syntax">, </span><span class="identifier-syntax">erm</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">do_not_locate_problems</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">Problems::quote_stream</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">full</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">erm</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span><span class="string-syntax">"I was unable to perform final code-generation: %1"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">do_not_locate_problems</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">full</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-rp.html#SP7_2" class="named-paragraph-link"><span class="named-paragraph">End problem message using the module of the same name</span><span class="named-paragraph-number">7.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifndef</span><span class="plain-syntax"> </span><span class="identifier-syntax">PROBLEMS_MODULE</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifndef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Errors::fatal</span><span class="plain-syntax">(</span><span class="identifier-syntax">erm</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">exit</span><span class="plain-syntax">(1);</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RunningPipelines::error_with</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">RunningPipelines::error_with</span></span>:<br/><a href="2-rp.html#SP3_1_1">&#167;3.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">erm</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">quoted</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">PROBLEMS_MODULE</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RunningPipelines::error_with</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">RunningPipelines::error_with</span></span>:<br/><a href="2-rp.html#SP3_1_1">&#167;3.1.1</a><br/>Read, Move, Wipe, Stop - <a href="2-rmws.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">erm</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">quoted</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">CORE_MODULE</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-rp.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Begin problem message using the module of the same name</span><span class="named-paragraph-number">7.1</span></a></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">full</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">full</span><span class="plain-syntax">, </span><span class="identifier-syntax">erm</span><span class="plain-syntax">, </span><span class="identifier-syntax">quoted</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">do_not_locate_problems</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">Problems::quote_stream</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">full</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">erm</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span><span class="string-syntax">"I was unable to perform final code-generation: %1"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">do_not_locate_problems</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-rp.html#SP7_2" class="named-paragraph-link"><span class="named-paragraph">End problem message using the module of the same name</span><span class="named-paragraph-number">7.2</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">full</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifndef</span><span class="plain-syntax"> </span><span class="identifier-syntax">PROBLEMS_MODULE</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifndef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Errors::fatal_with_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">erm</span><span class="plain-syntax">, </span><span class="identifier-syntax">quoted</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">exit</span><span class="plain-syntax">(1);</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7_1" class="paragraph-anchor"></a><b>&#167;7.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Begin problem message using the module of the same name</span><span class="named-paragraph-number">7.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">do_not_locate_problems</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">Problems::issue_problem_begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">erm</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="string-syntax">"Something went wrong late in compilation, when working through the "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"'pipeline' of code-generation steps. (This should not normally happen "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"unless your source text is making use of '(-' and '-)' and getting "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"that wrong, or unless you are experimenting with non-standard pipelines.) "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"The pipeline looks like so:"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-rp.html#SP7">&#167;7</a> (twice).</li></ul>
<p class="commentary firstcommentary"><a id="SP7_2" class="paragraph-anchor"></a><b>&#167;7.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">End problem message using the module of the same name</span><span class="named-paragraph-number">7.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">step</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_pipeline</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pipeline</span><span class="plain-syntax"> = </span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">pipeline</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">some_step</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">N</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">some_step</span><span class="plain-syntax">, </span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax">, </span><span class="identifier-syntax">pipeline</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">steps</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">description</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="2-pp.html#SP11" class="function-link"><span class="function-syntax">ParsingPipelines::write_step</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">description</span><span class="plain-syntax">, </span><span class="identifier-syntax">some_step</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</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">Problems::quote_number</span><span class="plain-syntax">(1, &amp;</span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">some_step</span><span class="plain-syntax"> == </span><span class="identifier-syntax">step</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_stream_tinted_red</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">description</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span><span class="string-syntax">"%1. %2"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_stream_tinted_green</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">description</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span><span class="string-syntax">"%1. %2"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">description</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">some_step</span><span class="plain-syntax"> == </span><span class="identifier-syntax">step</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</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">Problems::quote_stream</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">full</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span><span class="string-syntax">"Problem: %1"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">++;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">do_not_locate_problems</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-rp.html#SP7">&#167;7</a> (twice).</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-pp.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-pp.html">pp</a></li><li class="progresscurrent">rp</li><li class="progresssection"><a href="2-rmws.html">rmws</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="2-rmws.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-pp.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-pp.html">pp</a></li><li class="progresscurrent">rp</li><li class="progresssection"><a href="2-rmws.html">rmws</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="2-rmws.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -946,7 +946,7 @@ function togglePopup(material_id) {
</pre>
<ul class="endnotetexts"><li>The structure routine_body_request is private to this section.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-rcc.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-lnk.html">lnk</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresscurrent">ass</li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-res.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-rcc.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-as.html">as</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresscurrent">ass</li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-res.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -129,7 +129,7 @@ operations:
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-ip.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-lnk.html">lnk</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresscurrent">dic</li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-unq.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-ip.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-as.html">as</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresscurrent">dic</li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-unq.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -109,7 +109,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-res.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-lnk.html">lnk</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresscurrent">ip</li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-dic.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-res.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-as.html">as</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresscurrent">ip</li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-dic.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -1,131 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Link</title>
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
<meta name="viewport" content="width=device-width initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-gb">
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
<script>
function togglePopup(material_id) {
var popup = document.getElementById(material_id);
popup.classList.toggle("show");
}
</script>
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../compiler.html">compiler tools</a></li>
<li><a href="../other.html">other tools</a></li>
<li><a href="../extensions.html">extensions and kits</a></li>
<li><a href="../units.html">unit test tools</a></li>
</ul><h2>Compiler Webs</h2><ul>
<li><a href="../inbuild/index.html">inbuild</a></li>
<li><a href="../inform7/index.html">inform7</a></li>
<li><a href="../inter/index.html">inter</a></li>
</ul><h2>Inbuild Modules</h2><ul>
<li><a href="../supervisor-module/index.html">supervisor</a></li>
</ul><h2>Inform7 Modules</h2><ul>
<li><a href="../core-module/index.html">core</a></li>
<li><a href="../assertions-module/index.html">assertions</a></li>
<li><a href="../values-module/index.html">values</a></li>
<li><a href="../knowledge-module/index.html">knowledge</a></li>
<li><a href="../imperative-module/index.html">imperative</a></li>
<li><a href="../runtime-module/index.html">runtime</a></li>
<li><a href="../if-module/index.html">if</a></li>
<li><a href="../multimedia-module/index.html">multimedia</a></li>
<li><a href="../index-module/index.html">index</a></li>
</ul><h2>Inter Modules</h2><ul>
<li><a href="../bytecode-module/index.html">bytecode</a></li>
<li><a href="../building-module/index.html">building</a></li>
<li><a href="index.html"><span class="selectedlink">pipeline</span></a></li>
<li><a href="../final-module/index.html">final</a></li>
</ul><h2>Services</h2><ul>
<li><a href="../arch-module/index.html">arch</a></li>
<li><a href="../calculus-module/index.html">calculus</a></li>
<li><a href="../html-module/index.html">html</a></li>
<li><a href="../inflections-module/index.html">inflections</a></li>
<li><a href="../kinds-module/index.html">kinds</a></li>
<li><a href="../linguistics-module/index.html">linguistics</a></li>
<li><a href="../problems-module/index.html">problems</a></li>
<li><a href="../syntax-module/index.html">syntax</a></li>
<li><a href="../words-module/index.html">words</a></li>
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Link' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">pipeline</a></li><li><a href="index.html#3">Chapter 3: Linking</a></li><li><b>Link</b></li></ul></div>
<p class="purpose">Inter often needs to assimilate or otherwise deal with architecture-neutral kits of linkable material, and this is where such requirements are noted.</p>
<ul class="toc"><li><a href="3-lnk.html#SP1">&#167;1. </a></li><li><a href="3-lnk.html#SP2">&#167;2. Link stage</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </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">link_instruction</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">location</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">attachment_point</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">link_instruction</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">link_instruction</span><span class="plain-syntax"> *</span><span class="function-syntax">CodeGen::LinkInstructions::new</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">attach</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">link_instruction</span><span class="plain-syntax"> *</span><span class="identifier-syntax">link</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">link_instruction</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">link</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">location</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">link</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">attachment_point</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">attach</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">link</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<ul class="endnotetexts"><li>The structure link_instruction is private to this section.</li></ul>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. Link stage. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::LinkInstructions::create_pipeline_stage</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">CodeGen::LinkInstructions::create_pipeline_stage</span></span>:<br/>Parsing Pipelines - <a href="2-pp.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-pp.html#SP3" class="function-link"><span class="function-syntax">ParsingPipelines::new_stage</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"link"</span><span class="plain-syntax">, </span><a href="3-lnk.html#SP2" class="function-link"><span class="function-syntax">CodeGen::LinkInstructions::run_link_stage</span></a><span class="plain-syntax">, </span><span class="constant-syntax">NO_STAGE_ARG</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">CodeGen::LinkInstructions::run_link_stage</span><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">link_instruction</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</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">req</span><span class="plain-syntax">, </span><span class="reserved-syntax">link_instruction</span><span class="plain-syntax">, </span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">requirements_list</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_architecture</span><span class="plain-syntax"> *</span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><a href="1-pm.html#SP4" class="function-link"><span class="function-syntax">PipelineModule::get_architecture</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">A</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">Errors::fatal</span><span class="plain-syntax">(</span><span class="string-syntax">"no -architecture given"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">arch_file</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Architectures::canonical_binary</span><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location</span><span class="plain-syntax">, </span><span class="identifier-syntax">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">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">arch_file</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no arch file for requirement"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sidecar</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterTree::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Inter::Binary::test_file</span><span class="plain-syntax">(</span><span class="identifier-syntax">arch_file</span><span class="plain-syntax">)) </span><span class="identifier-syntax">Inter::Binary::read</span><span class="plain-syntax">(</span><span class="identifier-syntax">sidecar</span><span class="plain-syntax">, </span><span class="identifier-syntax">arch_file</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">Inter::Textual::read</span><span class="plain-syntax">(</span><span class="identifier-syntax">sidecar</span><span class="plain-syntax">, </span><span class="identifier-syntax">arch_file</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::by_url</span><span class="plain-syntax">(</span><span class="identifier-syntax">sidecar</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">attachment_point</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">STDERR</span><span class="plain-syntax">, </span><span class="string-syntax">"sought attachment material at: %S in %f\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">attachment_point</span><span class="plain-syntax">, </span><span class="identifier-syntax">arch_file</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"unable to find attachment point package"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Transmigration::move</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">Site::main_package</span><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">repository</span><span class="plain-syntax">), </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-rmws.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">lnk</li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-prp.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>
</body>
</html>

View file

@ -250,7 +250,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-prp.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-lnk.html">lnk</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresscurrent">mt</li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-tr.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-prp.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-as.html">as</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresscurrent">mt</li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-tr.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -128,7 +128,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-tr.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-lnk.html">lnk</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresscurrent">plm</li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-rcc.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-tr.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-as.html">as</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresscurrent">plm</li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-rcc.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -195,7 +195,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-lnk.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-lnk.html">lnk</a></li><li class="progresscurrent">prp</li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-mt.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-as.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-as.html">as</a></li><li class="progresscurrent">prp</li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-mt.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -293,7 +293,7 @@ function togglePopup(material_id) {
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-rcc.html#SP2">&#167;2</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-plm.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-lnk.html">lnk</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresscurrent">rcc</li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-ass.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-plm.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-as.html">as</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresscurrent">rcc</li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-ass.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -132,7 +132,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-ass.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-lnk.html">lnk</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresscurrent">res</li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-ip.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-ass.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-as.html">as</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresscurrent">res</li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-ip.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -138,7 +138,7 @@ function togglePopup(material_id) {
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-rv.html#SP2">&#167;2</a> (twice).</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-unq.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-lnk.html">lnk</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresscurrent">rv</li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-sh.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-unq.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-as.html">as</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresscurrent">rv</li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-sh.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -724,7 +724,7 @@ using template-hacking there are a handful of cases that can't be avoided, so...
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-mt.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-lnk.html">lnk</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresscurrent">tr</li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-plm.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-mt.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-as.html">as</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresscurrent">tr</li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresssection"><a href="3-unq.html">unq</a></li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-plm.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -124,7 +124,7 @@ function togglePopup(material_id) {
</pre>
<ul class="endnotetexts"><li>The structure uniqueness_count is private to this section.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-dic.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-lnk.html">lnk</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresscurrent">unq</li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-rv.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-dic.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-as.html">as</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-mt.html">mt</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-plm.html">plm</a></li><li class="progresssection"><a href="3-rcc.html">rcc</a></li><li class="progresssection"><a href="3-ass.html">ass</a></li><li class="progresssection"><a href="3-res.html">res</a></li><li class="progresssection"><a href="3-ip.html">ip</a></li><li class="progresssection"><a href="3-dic.html">dic</a></li><li class="progresscurrent">unq</li><li class="progresssection"><a href="3-rv.html">rv</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="3-rv.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -173,7 +173,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-act.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-rls.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresscurrent">act</li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-act2.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-rls.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresscurrent">act</li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-act2.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -248,7 +248,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_action</
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-act2.html#SP2">&#167;2</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-act.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresscurrent">act2</li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-ins.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-act.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresscurrent">act2</li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-ins.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -603,7 +603,7 @@ over the Inter tree. Each needs its own set of unique IDs.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-chr.html#SP1_6">&#167;1.6</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-tbl.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresscurrent">chr</li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-scn.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-tbl.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresscurrent">chr</li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-scn.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -195,7 +195,7 @@ is its extension ID.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-ext.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-su.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresscurrent">ext</li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-lt.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-su.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresscurrent">ext</li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-lt.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -124,7 +124,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_instance
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-ins.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-act2.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresscurrent">ins</li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-knd.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-act2.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresscurrent">ins</li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-knd.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -639,7 +639,7 @@ a kind of thing.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-ins.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresscurrent">knd</li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-prp.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-ins.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresscurrent">knd</li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-prp.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -201,7 +201,7 @@ and use that to define a sorting function on nodes:
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-ext.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresscurrent">lt</li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-rsp.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-ext.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresscurrent">lt</li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-rsp.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -155,7 +155,7 @@ of instances having the kind <span class="extract"><span class="extract-syntax">
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-mlt.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-scn.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresscurrent">mlt</li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-uo.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-scn.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresscurrent">mlt</li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-uo.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -103,7 +103,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-prp.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-knd.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresscurrent">prp</li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-rlt.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-knd.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresscurrent">prp</li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-rlt.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -320,7 +320,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_rulebook
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rls.html#SP1_6">&#167;1.6</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-rsp.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresscurrent">rls</li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-act.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-rsp.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresscurrent">rls</li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-act.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -178,7 +178,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_relation
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rlt.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-prp.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresscurrent">rlt</li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-tbl.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-prp.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresscurrent">rlt</li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-tbl.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -239,7 +239,7 @@ code is less limited.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rsp.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-lt.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresscurrent">rsp</li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-rls.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-lt.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresscurrent">rsp</li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-rls.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -170,7 +170,7 @@ whether any change in status has or has not occurred.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-scn.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-chr.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresscurrent">scn</li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-mlt.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-chr.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresscurrent">scn</li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-mlt.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -898,7 +898,7 @@ need to know which kit; we simply leaves them as "plugs" to be connected to
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-sh.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-rv.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresscurrent">sh</li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-su.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-rv.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresscurrent">sh</li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-su.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -426,7 +426,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-sh.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresscurrent">su</li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-ext.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-sh.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresscurrent">su</li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-ext.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -287,7 +287,7 @@ by index within the current table: see <a href="../assertions-module/7-tbl.html"
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-tbl.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-rlt.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresscurrent">tbl</li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-chr.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-rlt.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresscurrent">tbl</li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-chr.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -156,7 +156,7 @@ of type <span class="extract"><span class="extract-syntax">_test</span></span>.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-tst.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-vrb.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresscurrent">tst</li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="5-erm.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-vrb.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresscurrent">tst</li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="5-erm.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -169,7 +169,7 @@ name of a given use option.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-uo.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-mlt.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresscurrent">uo</li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-vrb.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-mlt.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresscurrent">uo</li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-vrb.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -126,7 +126,7 @@ of instances having the kind <span class="extract"><span class="extract-syntax">
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-vrb.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-uo.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresscurrent">vrb</li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-tst.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-uo.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sh.html">sh</a></li><li class="progresssection"><a href="4-su.html">su</a></li><li class="progresssection"><a href="4-ext.html">ext</a></li><li class="progresssection"><a href="4-lt.html">lt</a></li><li class="progresssection"><a href="4-rsp.html">rsp</a></li><li class="progresssection"><a href="4-rls.html">rls</a></li><li class="progresssection"><a href="4-act.html">act</a></li><li class="progresssection"><a href="4-act2.html">act2</a></li><li class="progresssection"><a href="4-ins.html">ins</a></li><li class="progresssection"><a href="4-knd.html">knd</a></li><li class="progresssection"><a href="4-prp.html">prp</a></li><li class="progresssection"><a href="4-rlt.html">rlt</a></li><li class="progresssection"><a href="4-tbl.html">tbl</a></li><li class="progresssection"><a href="4-chr.html">chr</a></li><li class="progresssection"><a href="4-scn.html">scn</a></li><li class="progresssection"><a href="4-mlt.html">mlt</a></li><li class="progresssection"><a href="4-uo.html">uo</a></li><li class="progresscurrent">vrb</li><li class="progresssection"><a href="4-tst.html">tst</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="4-tst.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -192,7 +192,7 @@ We look for such lines.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-erl.html#SP2">&#167;2</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="5-erm.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-erm.html">erm</a></li><li class="progresscurrent">erl</li><li class="progresssection"><a href="5-ero.html">ero</a></li><li class="progressnext"><a href="5-ero.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="5-erm.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-erm.html">erm</a></li><li class="progresscurrent">erl</li><li class="progresssection"><a href="5-ero.html">ero</a></li><li class="progressnext"><a href="5-ero.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -207,7 +207,7 @@ be included.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-tst.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresscurrent">erm</li><li class="progresssection"><a href="5-erl.html">erl</a></li><li class="progresssection"><a href="5-ero.html">ero</a></li><li class="progressnext"><a href="5-erl.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-tst.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresscurrent">erm</li><li class="progresssection"><a href="5-erl.html">erl</a></li><li class="progresssection"><a href="5-ero.html">ero</a></li><li class="progressnext"><a href="5-erl.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -176,7 +176,7 @@ operations:
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-ero.html#SP2">&#167;2</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="5-erl.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-erm.html">erm</a></li><li class="progresssection"><a href="5-erl.html">erl</a></li><li class="progresscurrent">ero</li><li class="progressnextoff">&#10095;</li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="5-erl.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-erm.html">erm</a></li><li class="progresssection"><a href="5-erl.html">erl</a></li><li class="progresscurrent">ero</li><li class="progressnextoff">&#10095;</li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -86,7 +86,7 @@ sequences of "stages" identified by name; and it then defines a number of stages
</p>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprevoff">&#10094;</li><li class="progresscurrentchapter">P</li><li class="progresscurrent">wtmd</li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-lnk.html">3</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="1-pm.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprevoff">&#10094;</li><li class="progresscurrentchapter">P</li><li class="progresscurrent">wtmd</li><li class="progresschapter"><a href="1-pm.html">1</a></li><li class="progresschapter"><a href="2-pp.html">2</a></li><li class="progresschapter"><a href="3-as.html">3</a></li><li class="progresschapter"><a href="4-sh.html">4</a></li><li class="progresschapter"><a href="5-erm.html">5</a></li><li class="progressnext"><a href="1-pm.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -111,9 +111,9 @@
<span class="chaptertitle">Chapter 3: Linking</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="3-lnk.html">
<spon class="sectiontitle">Link</span></a> -
<span class="sectionpurpose">Inter often needs to assimilate or otherwise deal with architecture-neutral kits of linkable material, and this is where such requirements are noted.</span></p>
<p class="sectionentry"><a href="3-as.html">
<spon class="sectiontitle">Attach Stage</span></a> -
<span class="sectionpurpose">Reading other Inter trees as binary files, and attaching them at given points in the main Inter tree.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-prp.html">

View file

@ -249,7 +249,16 @@ printed as the inference <span class="extract"><span class="extract-syntax">SP</
<span class="plain-syntax"> </span><span class="identifier-syntax">problem_quotations</span><span class="plain-syntax">[</span><span class="identifier-syntax">t</span><span class="plain-syntax">].</span><span class="element-syntax">text_quoted</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::problem_quote_textual</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Problems::problem_quote_textual</span></span>:<br/><a href="2-pl2.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::problem_quote_tinted</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Problems::problem_quote_tinted</span></span>:<br/><a href="2-pl2.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">v</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">f</span><span class="plain-syntax">)(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *), </span><span class="reserved-syntax">char</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">t</span><span class="plain-syntax">&lt;0) || (</span><span class="identifier-syntax">t</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">10</span><span class="plain-syntax">)) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"problem quotation number out of range"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">problem_quotations</span><span class="plain-syntax">[</span><span class="identifier-syntax">t</span><span class="plain-syntax">].</span><span class="element-syntax">structure_quoted</span><span class="plain-syntax"> = </span><span class="identifier-syntax">v</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">problem_quotations</span><span class="plain-syntax">[</span><span class="identifier-syntax">t</span><span class="plain-syntax">].</span><span class="element-syntax">expander</span><span class="plain-syntax"> = </span><span class="identifier-syntax">f</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">problem_quotations</span><span class="plain-syntax">[</span><span class="identifier-syntax">t</span><span class="plain-syntax">].</span><span class="element-syntax">quotation_type</span><span class="plain-syntax"> = </span><span class="identifier-syntax">type</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">problem_quotations</span><span class="plain-syntax">[</span><span class="identifier-syntax">t</span><span class="plain-syntax">].</span><span class="element-syntax">wording_based</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">problem_quotations</span><span class="plain-syntax">[</span><span class="identifier-syntax">t</span><span class="plain-syntax">].</span><span class="element-syntax">text_quoted</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::problem_quote_textual</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Problems::problem_quote_textual</span></span>:<br/><a href="2-pl2.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">t</span><span class="plain-syntax">&lt;0) || (</span><span class="identifier-syntax">t</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">10</span><span class="plain-syntax">)) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"problem quotation number out of range"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">problem_quotations</span><span class="plain-syntax">[</span><span class="identifier-syntax">t</span><span class="plain-syntax">].</span><span class="element-syntax">structure_quoted</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">problem_quotations</span><span class="plain-syntax">[</span><span class="identifier-syntax">t</span><span class="plain-syntax">].</span><span class="element-syntax">quotation_type</span><span class="plain-syntax"> = </span><span class="identifier-syntax">type</span><span class="plain-syntax">;</span>
@ -262,7 +271,7 @@ in the parse tree, or with a literal word range.
</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">Problems::quote_source</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_source</span></span>:<br/>Problems, Level 3 - <a href="2-pl3.html#SP4">&#167;4</a>, <a href="2-pl3.html#SP12">&#167;12</a>, <a href="2-pl3.html#SP14">&#167;14</a>, <a href="2-pl3.html#SP15">&#167;15</a>, <a href="2-pl3.html#SP16">&#167;16</a>, <a href="2-pl3.html#SP18">&#167;18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_source</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_source</span></span>:<br/>Problems, Level 3 - <a href="2-pl3.html#SP4">&#167;4</a>, <a href="2-pl3.html#SP12">&#167;12</a>, <a href="2-pl3.html#SP14">&#167;14</a>, <a href="2-pl3.html#SP15">&#167;15</a>, <a href="2-pl3.html#SP16">&#167;16</a>, <a href="2-pl3.html#SP18">&#167;18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><a href="2-pl2.html#SP5" class="function-link"><span class="function-syntax">Problems::problem_quote_textual</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="character-syntax">'S'</span><span class="plain-syntax">, </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="2-pl2.html#SP6" class="function-link"><span class="function-syntax">Problems::quote_wording_as_source</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">));</span>
<span class="plain-syntax">}</span>
@ -270,7 +279,7 @@ in the parse tree, or with a literal word range.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><a href="2-pl2.html#SP5" class="function-link"><span class="function-syntax">Problems::problem_quote_textual</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="character-syntax">'S'</span><span class="plain-syntax">, </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="2-pl2.html#SP5" class="function-link"><span class="function-syntax">Problems::problem_quote_textual</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="character-syntax">'S'</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_text</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_wording</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_wording</span></span>:<br/>Problems, Level 3 - <a href="2-pl3.html#SP16">&#167;16</a>, <a href="2-pl3.html#SP18">&#167;18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_wording</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_wording</span></span>:<br/>Problems, Level 3 - <a href="2-pl3.html#SP16">&#167;16</a>, <a href="2-pl3.html#SP18">&#167;18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-pl2.html#SP5" class="function-link"><span class="function-syntax">Problems::problem_quote_textual</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="character-syntax">'W'</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_wording_tinted_green</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
@ -282,21 +291,27 @@ in the parse tree, or with a literal word range.
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_wording_as_source</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-pl2.html#SP5" class="function-link"><span class="function-syntax">Problems::problem_quote_textual</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="character-syntax">'S'</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_text</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_text</span></span>:<br/>Problems, Level 3 - <a href="2-pl3.html#SP4">&#167;4</a>, <a href="2-pl3.html#SP5">&#167;5</a>, <a href="2-pl3.html#SP11">&#167;11</a>, <a href="2-pl3.html#SP12">&#167;12</a>, <a href="2-pl3.html#SP14">&#167;14</a>, <a href="2-pl3.html#SP15">&#167;15</a>, <a href="2-pl3.html#SP16">&#167;16</a>, <a href="2-pl3.html#SP18">&#167;18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_text</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_text</span></span>:<br/>Problems, Level 3 - <a href="2-pl3.html#SP4">&#167;4</a>, <a href="2-pl3.html#SP5">&#167;5</a>, <a href="2-pl3.html#SP11">&#167;11</a>, <a href="2-pl3.html#SP12">&#167;12</a>, <a href="2-pl3.html#SP14">&#167;14</a>, <a href="2-pl3.html#SP15">&#167;15</a>, <a href="2-pl3.html#SP16">&#167;16</a>, <a href="2-pl3.html#SP18">&#167;18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-pl2.html#SP5" class="function-link"><span class="function-syntax">Problems::problem_quote</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><a href="2-pl2.html#SP6" class="function-link"><span class="function-syntax">Problems::expand_text</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::expand_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%s"</span><span class="plain-syntax">, (</span><span class="reserved-syntax">char</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_wide_text</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_wide_text</span></span>:<br/>Problems, Level 3 - <a href="2-pl3.html#SP12">&#167;12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_wide_text</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_wide_text</span></span>:<br/>Problems, Level 3 - <a href="2-pl3.html#SP12">&#167;12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-pl2.html#SP5" class="function-link"><span class="function-syntax">Problems::problem_quote</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><a href="2-pl2.html#SP6" class="function-link"><span class="function-syntax">Problems::expand_wide_text</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::expand_wide_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%w"</span><span class="plain-syntax">, (</span><span class="identifier-syntax">wchar_t</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_stream</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_stream</span></span>:<br/>Problems, Level 3 - <a href="2-pl3.html#SP5">&#167;5</a>, <a href="2-pl3.html#SP12">&#167;12</a>, <a href="2-pl3.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_stream</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_stream</span></span>:<br/>Problems, Level 3 - <a href="2-pl3.html#SP5">&#167;5</a>, <a href="2-pl3.html#SP12">&#167;12</a>, <a href="2-pl3.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-pl2.html#SP5" class="function-link"><span class="function-syntax">Problems::problem_quote</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><a href="2-pl2.html#SP6" class="function-link"><span class="function-syntax">Problems::expand_stream</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_stream_tinted_green</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-pl2.html#SP5" class="function-link"><span class="function-syntax">Problems::problem_quote_tinted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><a href="2-pl2.html#SP6" class="function-link"><span class="function-syntax">Problems::expand_stream</span></a><span class="plain-syntax">, </span><span class="character-syntax">'g'</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_stream_tinted_red</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-pl2.html#SP5" class="function-link"><span class="function-syntax">Problems::problem_quote_tinted</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><a href="2-pl2.html#SP6" class="function-link"><span class="function-syntax">Problems::expand_stream</span></a><span class="plain-syntax">, </span><span class="character-syntax">'r'</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::expand_stream</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, (</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -312,7 +327,7 @@ in the parse tree, or with a literal word range.
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%&lt;W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_number</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_number</span></span>:<br/>Problems, Level 3 - <a href="2-pl3.html#SP4">&#167;4</a>, <a href="2-pl3.html#SP5">&#167;5</a>, <a href="2-pl3.html#SP11">&#167;11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::quote_number</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Problems::quote_number</span></span>:<br/>Problems, Level 3 - <a href="2-pl3.html#SP4">&#167;4</a>, <a href="2-pl3.html#SP5">&#167;5</a>, <a href="2-pl3.html#SP11">&#167;11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-pl2.html#SP5" class="function-link"><span class="function-syntax">Problems::problem_quote</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><a href="2-pl2.html#SP6" class="function-link"><span class="function-syntax">Problems::expand_number</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::expand_number</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
@ -346,7 +361,7 @@ and we give no further explanation in any circumstances.
<span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">explanations</span><span class="plain-syntax">[</span><span class="constant-syntax">PATIENCE_EXHAUSTION_POINT</span><span class="plain-syntax">];</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">no_explanations</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::explained_before</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Problems::explained_before</span></span>:<br/><a href="2-pl2.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">explanation</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::explained_before</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Problems::explained_before</span></span>:<br/><a href="2-pl2.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">explanation</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">no_explanations</span><span class="plain-syntax"> == </span><span class="constant-syntax">PATIENCE_EXHAUSTION_POINT</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">no_explanations</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">explanation</span><span class="plain-syntax"> == </span><span class="identifier-syntax">explanations</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
@ -366,7 +381,7 @@ to remember whether to use the short or long form.
</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">Problems::issue_problem_begin</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Problems::issue_problem_begin</span></span>:<br/>Problems, Level 3 - <a href="2-pl3.html#SP4">&#167;4</a>, <a href="2-pl3.html#SP5">&#167;5</a>, <a href="2-pl3.html#SP10">&#167;10</a>, <a href="2-pl3.html#SP11">&#167;11</a>, <a href="2-pl3.html#SP12">&#167;12</a>, <a href="2-pl3.html#SP13">&#167;13</a>, <a href="2-pl3.html#SP14">&#167;14</a>, <a href="2-pl3.html#SP15">&#167;15</a>, <a href="2-pl3.html#SP16">&#167;16</a>, <a href="2-pl3.html#SP18">&#167;18</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">message</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::issue_problem_begin</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Problems::issue_problem_begin</span></span>:<br/>Problems, Level 3 - <a href="2-pl3.html#SP4">&#167;4</a>, <a href="2-pl3.html#SP5">&#167;5</a>, <a href="2-pl3.html#SP10">&#167;10</a>, <a href="2-pl3.html#SP11">&#167;11</a>, <a href="2-pl3.html#SP12">&#167;12</a>, <a href="2-pl3.html#SP13">&#167;13</a>, <a href="2-pl3.html#SP14">&#167;14</a>, <a href="2-pl3.html#SP15">&#167;15</a>, <a href="2-pl3.html#SP16">&#167;16</a>, <a href="2-pl3.html#SP18">&#167;18</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">message</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-pl1.html#SP1" class="function-link"><span class="function-syntax">ProblemBuffer::clear</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">strcmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">message</span><span class="plain-syntax">, </span><span class="string-syntax">"*"</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">PBUFF</span><span class="plain-syntax">, </span><span class="string-syntax">"&gt;++&gt;"</span><span class="plain-syntax">);</span>
@ -389,7 +404,7 @@ to remember whether to use the short or long form.
<span class="plain-syntax"> </span><span class="identifier-syntax">scanning_problem_for</span><span class="plain-syntax"> = </span><span class="constant-syntax">ANY_USE_OF_PROBLEM</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::issue_problem_end</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Problems::issue_problem_end</span></span>:<br/>Problems, Level 3 - <a href="2-pl3.html#SP3">&#167;3</a>, <a href="2-pl3.html#SP11">&#167;11</a>, <a href="2-pl3.html#SP12">&#167;12</a>, <a href="2-pl3.html#SP13">&#167;13</a>, <a href="2-pl3.html#SP14">&#167;14</a>, <a href="2-pl3.html#SP15">&#167;15</a>, <a href="2-pl3.html#SP16">&#167;16</a>, <a href="2-pl3.html#SP18">&#167;18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::issue_problem_end</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Problems::issue_problem_end</span></span>:<br/>Problems, Level 3 - <a href="2-pl3.html#SP3">&#167;3</a>, <a href="2-pl3.html#SP11">&#167;11</a>, <a href="2-pl3.html#SP12">&#167;12</a>, <a href="2-pl3.html#SP13">&#167;13</a>, <a href="2-pl3.html#SP14">&#167;14</a>, <a href="2-pl3.html#SP15">&#167;15</a>, <a href="2-pl3.html#SP16">&#167;16</a>, <a href="2-pl3.html#SP18">&#167;18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">ENDING_MESSAGE_PROBLEMS_CALLBACK</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ENDING_MESSAGE_PROBLEMS_CALLBACK</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
@ -402,7 +417,7 @@ to remember whether to use the short or long form.
</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">Problems::problem_documentation_links</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">Problems::problem_documentation_links</span></span>:<br/><a href="2-pl2.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::problem_documentation_links</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Problems::problem_documentation_links</span></span>:<br/><a href="2-pl2.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span 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">sigil_of_latest_unlinked_problem</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">DOCUMENTATION_REFERENCE_PROBLEMS_CALLBACK</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DOCUMENTATION_REFERENCE_PROBLEMS_CALLBACK</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">sigil_of_latest_unlinked_problem</span><span class="plain-syntax">);</span>
@ -418,10 +433,10 @@ to remember whether to use the short or long form.
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">appended_source</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::append_source</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Problems::append_source</span></span>:<br/><a href="2-pl2.html#SP12_1_2">&#167;12.1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::append_source</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Problems::append_source</span></span>:<br/><a href="2-pl2.html#SP12_1_2">&#167;12.1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">appended_source</span><span class="plain-syntax"> = </span><span class="identifier-syntax">W</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::transcribe_appended_source</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Problems::transcribe_appended_source</span></span>:<br/><a href="2-pl2.html#SP12_1_2">&#167;12.1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::transcribe_appended_source</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Problems::transcribe_appended_source</span></span>:<br/><a href="2-pl2.html#SP12_1_2">&#167;12.1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">appended_source</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="2-pl1.html#SP4" class="function-link"><span class="function-syntax">ProblemBuffer::copy_source_reference</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">appended_source</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -433,7 +448,7 @@ to build up complicated messages.
</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">Problems::issue_problem_segment</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Problems::issue_problem_segment</span></span>:<br/>Problems, Level 3 - <a href="2-pl3.html#SP4">&#167;4</a>, <a href="2-pl3.html#SP5">&#167;5</a>, <a href="2-pl3.html#SP11">&#167;11</a>, <a href="2-pl3.html#SP12">&#167;12</a>, <a href="2-pl3.html#SP13">&#167;13</a>, <a href="2-pl3.html#SP14">&#167;14</a>, <a href="2-pl3.html#SP15">&#167;15</a>, <a href="2-pl3.html#SP16">&#167;16</a>, <a href="2-pl3.html#SP18">&#167;18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">message</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::issue_problem_segment</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">Problems::issue_problem_segment</span></span>:<br/>Problems, Level 3 - <a href="2-pl3.html#SP4">&#167;4</a>, <a href="2-pl3.html#SP5">&#167;5</a>, <a href="2-pl3.html#SP11">&#167;11</a>, <a href="2-pl3.html#SP12">&#167;12</a>, <a href="2-pl3.html#SP13">&#167;13</a>, <a href="2-pl3.html#SP14">&#167;14</a>, <a href="2-pl3.html#SP15">&#167;15</a>, <a href="2-pl3.html#SP16">&#167;16</a>, <a href="2-pl3.html#SP18">&#167;18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">message</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">message</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">message</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] == </span><span class="character-syntax">'%'</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">message</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">+1]) {</span>
@ -547,7 +562,11 @@ ourselves, and must delegate to:
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="2-pl2.html#SP11" class="function-link"><span class="function-syntax">Problems::append_source</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EMPTY_WORDING</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">problem_quotations</span><span class="plain-syntax">[</span><span class="identifier-syntax">t</span><span class="plain-syntax">].</span><span class="element-syntax">quotation_type</span><span class="plain-syntax"> == </span><span class="character-syntax">'r'</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML::begin_colour</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"800000"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">problem_quotations</span><span class="plain-syntax">[</span><span class="identifier-syntax">t</span><span class="plain-syntax">].</span><span class="element-syntax">quotation_type</span><span class="plain-syntax"> == </span><span class="character-syntax">'g'</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML::begin_colour</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"008000"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">problem_quotations</span><span class="plain-syntax">[</span><span class="identifier-syntax">t</span><span class="plain-syntax">].</span><span class="element-syntax">expander</span><span class="plain-syntax">)(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">problem_quotations</span><span class="plain-syntax">[</span><span class="identifier-syntax">t</span><span class="plain-syntax">].</span><span class="element-syntax">structure_quoted</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">problem_quotations</span><span class="plain-syntax">[</span><span class="identifier-syntax">t</span><span class="plain-syntax">].</span><span class="element-syntax">quotation_type</span><span class="plain-syntax"> == </span><span class="character-syntax">'r'</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML::end_colour</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">problem_quotations</span><span class="plain-syntax">[</span><span class="identifier-syntax">t</span><span class="plain-syntax">].</span><span class="element-syntax">quotation_type</span><span class="plain-syntax"> == </span><span class="character-syntax">'g'</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML::end_colour</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="2-pl2.html#SP12_1_1_1_1" class="named-paragraph-link"><span class="named-paragraph">Spool temporary stream text to the problem buffer</span><span class="named-paragraph-number">12.1.1.1.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">OUT</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="2-pl2.html#SP11" class="function-link"><span class="function-syntax">Problems::transcribe_appended_source</span></a><span class="plain-syntax">();</span>
@ -584,7 +603,7 @@ ourselves, and must delegate to:
<span class="plain-syntax"> </span><a href="2-pl0.html#SP1" class="function-link"><span class="function-syntax">ProblemSigils::exit</span></a><span class="plain-syntax">(2);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::fatal_on_file</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">Problems::fatal_on_file</span></span>:<br/>Telemetry - <a href="1-tlm.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">message</span><span class="plain-syntax">, </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::fatal_on_file</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">Problems::fatal_on_file</span></span>:<br/>Telemetry - <a href="1-tlm.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">message</span><span class="plain-syntax">, </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">STDERR</span><span class="plain-syntax">, </span><span class="identifier-syntax">message</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">STDERR</span><span class="plain-syntax">, </span><span class="string-syntax">"\nOffending filename: &lt;%f&gt;\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">STREAM_FLUSH</span><span class="plain-syntax">(</span><span class="identifier-syntax">STDERR</span><span class="plain-syntax">);</span>

View file

@ -158,7 +158,7 @@ or should be, so the effect is the same.
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_pipeline</span><span class="plain-syntax"> *</span><span class="identifier-syntax">SS</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ParsingPipelines::from_file</span><span class="plain-syntax">(</span><span class="identifier-syntax">pipeline_as_file</span><span class="plain-syntax">, </span><span class="identifier-syntax">pipeline_vars</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SS</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">requirements_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_library</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">requirements_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">attachment_instruction</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RunningPipelines::run</span><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">SS</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_paths</span><span class="plain-syntax">, </span><span class="identifier-syntax">requirements_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">for_vm</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
@ -213,7 +213,7 @@ it defaults to <span class="extract"><span class="extract-syntax">compile</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RunningPipelines::run</span><span class="plain-syntax">(</span><span class="identifier-syntax">Filenames::up</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">vertex</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_file</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pipeline</span><span class="plain-syntax">, </span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><a href="5-ks.html#SP13" class="function-link"><span class="function-syntax">Kits::inter_paths</span></a><span class="plain-syntax">(</span><a href="5-ps2.html#SP6" class="function-link"><span class="function-syntax">Projects::nest_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">project</span><span class="plain-syntax">)),</span>
<span class="plain-syntax"> </span><a href="5-ps2.html#SP24" class="function-link"><span class="function-syntax">Projects::list_of_link_instructions</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">project</span><span class="plain-syntax">), </span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">for_vm</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-ps2.html#SP24" class="function-link"><span class="function-syntax">Projects::list_of_attachment_instructions</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">project</span><span class="plain-syntax">), </span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">for_vm</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">"Back end elapsed time: %dcs\n"</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">clock</span><span class="plain-syntax">() - </span><span class="identifier-syntax">back_end</span><span class="plain-syntax">)) / (</span><span class="identifier-syntax">CLOCKS_PER_SEC</span><span class="plain-syntax">/100));</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>

View file

@ -622,14 +622,14 @@ details instead.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">#</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">PIPELINE_MODULE</span>
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="function-syntax">Projects::list_of_link_instructions</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">Projects::list_of_link_instructions</span></span>:<br/>Inter Skill - <a href="3-is.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">requirements_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">link_instruction</span><span class="plain-syntax">);</span>
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="function-syntax">Projects::list_of_attachment_instructions</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">Projects::list_of_attachment_instructions</span></span>:<br/>Inter Skill - <a href="3-is.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">requirements_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">attachment_instruction</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-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="reserved-syntax">kit_dependency</span><span class="plain-syntax">, </span><span class="identifier-syntax">project</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kits_to_include</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">kd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kit</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">link_instruction</span><span class="plain-syntax"> *</span><span class="identifier-syntax">link</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CodeGen::LinkInstructions::new</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">attachment_instruction</span><span class="plain-syntax"> *</span><span class="identifier-syntax">link</span><span class="plain-syntax"> = </span><span class="identifier-syntax">AttachStage::new</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location_if_path</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">attachment_point</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">link</span><span class="plain-syntax">, </span><span class="identifier-syntax">link_instruction</span><span class="plain-syntax">, </span><span class="identifier-syntax">requirements_list</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">link</span><span class="plain-syntax">, </span><span class="identifier-syntax">attachment_instruction</span><span class="plain-syntax">, </span><span class="identifier-syntax">requirements_list</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">requirements_list</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -1372,7 +1372,6 @@ and those marked as "arithmetic operations".
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG_DASH</span><span class="plain-syntax">(</span><span class="string-syntax">"(4I.a)"</span><span class="plain-syntax">);</span>
<span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">MATCHING</span><span class="plain-syntax">, </span><span class="string-syntax">"outcome = %d\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">outcome</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">IDTypeData::arithmetic_operation</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</span><span class="plain-syntax">) == </span><span class="identifier-syntax">TOTAL_OPERATION</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dsh.html#SP10_9_1_1_2_1" class="named-paragraph-link"><span class="named-paragraph">Step (4I.a.1) "Total P of O" has kind the kind of P</span><span class="named-paragraph-number">10.9.1.1.2.1</span></a></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">IDTypeData::is_arithmetic_phrase</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="5-dsh.html#SP10_9_1_1_2_2" class="named-paragraph-link"><span class="named-paragraph">Step (4I.a.2) Dimension-check arithmetic phrases</span><span class="named-paragraph-number">10.9.1.1.2.2</span></a></span><span class="plain-syntax">;</span>
@ -2293,7 +2292,6 @@ to level 5.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG_DASH</span><span class="plain-syntax">(</span><span class="string-syntax">"(4S.a)"</span><span class="plain-syntax">);</span>
<span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">MATCHING</span><span class="plain-syntax">, </span><span class="string-syntax">"outcome = %d\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">outcome</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG_INDENT</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">outcome</span><span class="plain-syntax"> = </span><a href="5-dsh.html#SP18" class="function-link"><span class="function-syntax">Dash::typecheck_single_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind_needed</span><span class="plain-syntax">, </span><span class="identifier-syntax">condition_context</span><span class="plain-syntax">);</span>
@ -2301,12 +2299,10 @@ to level 5.
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dsh.html#SP10_9_1_2_1" class="named-paragraph-link"><span class="named-paragraph">Allow listed-in table references only where these are expected</span><span class="named-paragraph-number">10.9.1.2.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG_DASH</span><span class="plain-syntax">(</span><span class="string-syntax">"(4S.b)"</span><span class="plain-syntax">);</span>
<span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">MATCHING</span><span class="plain-syntax">, </span><span class="string-syntax">"outcome was %d\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">outcome</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">arg</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">down</span><span class="plain-syntax">; </span><span class="identifier-syntax">arg</span><span class="plain-syntax">; </span><span class="identifier-syntax">arg</span><span class="plain-syntax"> = </span><span class="identifier-syntax">arg</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">outcome</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="5-dsh.html#SP7" class="function-link"><span class="function-syntax">Dash::worst_case</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">outcome</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="5-dsh.html#SP9" class="function-link"><span class="function-syntax">Dash::typecheck_recursive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">));</span>
<span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">MATCHING</span><span class="plain-syntax">, </span><span class="string-syntax">"outcome is %d\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">outcome</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">outcome</span><span class="plain-syntax"> != </span><span class="identifier-syntax">NEVER_MATCH</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">down</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">LIST_ENTRY_NT</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dsh.html#SP10_9_1_2_2" class="named-paragraph-link"><span class="named-paragraph">Step (4S.c) Check arguments of a list entry</span><span class="named-paragraph-number">10.9.1.2.2</span></a></span><span class="plain-syntax">;</span>

View file

@ -84,7 +84,7 @@ int InterSkill::assimilate_internally(build_skill *skill, build_step *S,
inter_pipeline *SS =
ParsingPipelines::from_file(pipeline_as_file, pipeline_vars);
if (SS) {
linked_list *requirements_list = NEW_LINKED_LIST(inter_library);
linked_list *requirements_list = NEW_LINKED_LIST(attachment_instruction);
RunningPipelines::run(NULL, SS, NULL, inter_paths, requirements_list, S->for_vm);
return TRUE;
} else {
@ -138,7 +138,7 @@ int InterSkill::code_generate_internally(build_skill *skill, build_step *S,
}
RunningPipelines::run(Filenames::up(S->vertex->as_file),
pipeline, Emit::tree(), Kits::inter_paths(Projects::nest_list(project)),
Projects::list_of_link_instructions(project), S->for_vm);
Projects::list_of_attachment_instructions(project), S->for_vm);
LOG("Back end elapsed time: %dcs\n",
((int) (clock() - back_end)) / (CLOCKS_PER_SEC/100));
#ifdef CORE_MODULE

View file

@ -491,14 +491,14 @@ details instead.
=
#ifdef PIPELINE_MODULE
linked_list *Projects::list_of_link_instructions(inform_project *project) {
linked_list *requirements_list = NEW_LINKED_LIST(link_instruction);
linked_list *Projects::list_of_attachment_instructions(inform_project *project) {
linked_list *requirements_list = NEW_LINKED_LIST(attachment_instruction);
kit_dependency *kd;
LOOP_OVER_LINKED_LIST(kd, kit_dependency, project->kits_to_include) {
inform_kit *K = kd->kit;
link_instruction *link = CodeGen::LinkInstructions::new(
attachment_instruction *link = AttachStage::new(
K->as_copy->location_if_path, K->attachment_point);
ADD_TO_LINKED_LIST(link, link_instruction, requirements_list);
ADD_TO_LINKED_LIST(link, attachment_instruction, requirements_list);
}
return requirements_list;
}

View file

@ -214,7 +214,7 @@ Total memory consumption was 399937K = 391 MB
---- inform_pipeline 3 objects, 192 bytes
---- kit_dependency 4 objects, 192 bytes
---- plural_dictionary_entry 4 objects, 192 bytes
---- link_instruction 4 objects, 160 bytes
---- attachment_instruction 4 objects, 160 bytes
---- inter_architecture 4 objects, 160 bytes
---- imperative_defn_family 4 objects, 160 bytes
---- inference_subject_family 5 objects, 160 bytes
@ -238,7 +238,7 @@ Total memory consumption was 399937K = 391 MB
38.9% was used for memory not allocated for objects:
20.4% text stream storage 83670108 bytes in 543395 claims
20.4% text stream storage 83670308 bytes in 543397 claims
4.4% dictionary storage 18323456 bytes in 33302 claims
---- sorting 736 bytes in 3 claims
1.7% source text 7200000 bytes in 3 claims

View file

@ -1,38 +1,36 @@
100.0% in inform7 run
64.1% in compilation to Inter
44.9% in //Sequence::undertake_queued_tasks//
4.0% in //MajorNodes::pre_pass//
63.3% in compilation to Inter
45.7% in //Sequence::undertake_queued_tasks//
3.9% in //MajorNodes::pre_pass//
2.9% in //MajorNodes::pass_1//
2.3% in //RTPhrasebook::compile_entries//
2.4% in //RTPhrasebook::compile_entries//
1.5% in //ImperativeDefinitions::assess_all//
1.3% in //RTKindConstructors::compile//
0.4% in //ImperativeDefinitions::compile_first_block//
0.4% in //MajorNodes::pass_2//
0.4% in //Sequence::undertake_queued_tasks//
0.4% in //Sequence::undertake_queued_tasks//
0.4% in //World::stage_V//
0.3% in //CompletionModule::compile//
0.5% in //MajorNodes::pass_2//
0.5% in //Sequence::undertake_queued_tasks//
0.5% in //World::stage_V//
0.3% in //ImperativeDefinitions::compile_first_block//
0.3% in //Sequence::undertake_queued_tasks//
0.1% in //CompletionModule::compile//
0.1% in //InferenceSubjects::emit_all//
0.1% in //RTKindConstructors::compile_permissions//
0.1% in //Task::make_built_in_kind_constructors//
0.1% in //World::stages_II_and_III//
3.7% not specifically accounted for
33.8% in running Inter pipeline
10.9% in inter step 7/16: consolidate-text
8.9% in inter step 2/16: link
7.5% in inter step 16/16: generate inform6 -> auto.inf
2.4% not specifically accounted for
34.3% in running Inter pipeline
11.0% in inter step 7/16: consolidate-text
9.1% in inter step 2/16: attach
7.7% in inter step 16/16: generate inform6 -> auto.inf
1.7% in inter step 11/16: make-identifiers-unique
0.6% in step preparation
0.4% in inter step 12/16: reconcile-verbs
0.4% in inter step 6/16: assimilate
0.3% in inter step 10/16: detect-indirect-calls
0.5% in inter step 12/16: reconcile-verbs
0.3% in inter step 14/16: eliminate-redundant-operations
0.3% in inter step 6/16: assimilate
0.3% in inter step 8/16: resolve-external-symbols
0.3% in inter step 9/16: inspect-plugs
0.1% in inter step 10/16: detect-indirect-calls
0.1% in inter step 13/16: eliminate-redundant-labels
0.1% in inter step 3/16: merge-template <- none
0.1% in inter step 4/16: parse-linked-matter
0.1% in inter step 5/16: resolve-conditional-compilation
1.2% not specifically accounted for
0.1% in inter step 9/16: inspect-plugs
1.5% not specifically accounted for
1.8% in supervisor
0.2% not specifically accounted for
0.4% not specifically accounted for

View file

@ -1,5 +1,5 @@
read <- *in
link
attach
merge-template <- none
parse-linked-matter
resolve-conditional-compilation

View file

@ -1,5 +1,5 @@
read <- *in
link
attach
merge-template <- none
parse-linked-matter
resolve-conditional-compilation

View file

@ -1056,7 +1056,6 @@ and those marked as "arithmetic operations".
@<Step (4I.a) Take care of arithmetic phrases@> =
LOG_DASH("(4I.a)");
LOGIF(MATCHING, "outcome = %d\n", outcome);
if (IDTypeData::arithmetic_operation(idb) == TOTAL_OPERATION)
@<Step (4I.a.1) "Total P of O" has kind the kind of P@>
else if (IDTypeData::is_arithmetic_phrase(idb)) @<Step (4I.a.2) Dimension-check arithmetic phrases@>;
@ -1790,7 +1789,6 @@ to level 5.
@<Step (4S) Verify anything else@> =
LOG_DASH("(4S.a)");
LOGIF(MATCHING, "outcome = %d\n", outcome);
LOG_INDENT;
outcome = Dash::typecheck_single_node(p, kind_needed, condition_context);
@ -1798,12 +1796,10 @@ LOGIF(MATCHING, "outcome = %d\n", outcome);
@<Allow listed-in table references only where these are expected@>;
LOG_DASH("(4S.b)");
LOGIF(MATCHING, "outcome was %d\n", outcome);
for (parse_node *arg = p->down; arg; arg = arg->next)
outcome =
Dash::worst_case(outcome,
Dash::typecheck_recursive(arg, p, TRUE));
LOGIF(MATCHING, "outcome is %d\n", outcome);
if ((outcome != NEVER_MATCH) && (p->down)) {
if (Node::is(p, LIST_ENTRY_NT))
@<Step (4S.c) Check arguments of a list entry@>;

View file

@ -99,7 +99,7 @@ form, which would be written to |*outt|.
SS = ParsingPipelines::from_file(pipeline_as_file, pipeline_vars);
else
SS = ParsingPipelines::from_text(pipeline_as_text, pipeline_vars);
linked_list *requirements_list = NEW_LINKED_LIST(inter_library);
linked_list *requirements_list = NEW_LINKED_LIST(attachment_instruction);
if (SS) RunningPipelines::run(domain_path, SS, NULL, inter_paths, requirements_list, NULL);
else Errors::fatal("pipeline could not be parsed");

View file

@ -17,7 +17,7 @@ which use this module:
@e text_literal_holder_CLASS
@e routine_body_request_CLASS
@e pipeline_stage_CLASS
@e link_instruction_CLASS
@e attachment_instruction_CLASS
@e tree_inventory_CLASS
@e tree_inventory_item_CLASS
@ -29,7 +29,7 @@ DECLARE_CLASS(uniqueness_count)
DECLARE_CLASS(text_literal_holder)
DECLARE_CLASS(routine_body_request)
DECLARE_CLASS(pipeline_stage)
DECLARE_CLASS(link_instruction)
DECLARE_CLASS(attachment_instruction)
DECLARE_CLASS(tree_inventory)
DECLARE_CLASS(tree_inventory_item)

View file

@ -295,7 +295,7 @@ pipeline_stage *ParsingPipelines::parse_stage(text_stream *from) {
SimpleStages::create_pipeline_stages();
CodeGen::create_pipeline_stage();
CodeGen::Architecture::create_pipeline_stage();
CodeGen::LinkInstructions::create_pipeline_stage();
AttachStage::create_pipeline_stage();
CodeGen::Assimilate::create_pipeline_stage();
DetectIndirectCalls::create_pipeline_stage();
CodeGen::Eliminate::create_pipeline_stage();

View file

@ -28,15 +28,23 @@ int SimpleStages::run_move_stage(pipeline_step *step) {
inter_package *pack = NULL;
if (Regexp::match(&mr, step->step_argument, L"(%d):(%c+)")) {
int from_rep = Str::atoi(mr.exp[0], 0);
if (step->ephemera.pipeline->ephemera.repositories[from_rep] == NULL)
internal_error("no such repository");
if (step->ephemera.pipeline->ephemera.repositories[from_rep] == NULL) {
RunningPipelines::error_with(step, "there is no Inter tree in slot %S", mr.exp[0]);
return FALSE;
}
pack = Inter::Packages::by_url(
step->ephemera.pipeline->ephemera.repositories[from_rep], mr.exp[1]);
if (pack == NULL) {
RunningPipelines::error_with(step, "that tree has no such package as '%S'", mr.exp[1]);
return FALSE;
}
} else {
RunningPipelines::error_with(step,
"destination should take the form 'N:URL', not '%S'", mr.exp[1]);
return FALSE;
}
Regexp::dispose_of(&mr);
if (pack == NULL) internal_error("not a package");
Inter::Transmigration::move(pack, Site::main_package(step->ephemera.repository), FALSE);
return TRUE;
}

View file

@ -24,7 +24,7 @@ typedef struct pipeline_step_ephemera {
int to_debugging_log;
int from_memory;
struct text_stream *to_stream;
struct linked_list *requirements_list; /* of |inter_library| */
struct linked_list *requirements_list; /* of |attachment_instruction| */
struct inter_tree *repository;
struct inter_pipeline *pipeline;
struct target_vm *for_VM;
@ -41,7 +41,7 @@ void RunningPipelines::clean_step(pipeline_step *step) {
step->ephemera.the_PP = NULL;
step->ephemera.repository = NULL;
step->ephemera.pipeline = NULL;
step->ephemera.requirements_list = NEW_LINKED_LIST(inter_library);
step->ephemera.requirements_list = NEW_LINKED_LIST(attachment_instruction);
step->ephemera.for_VM = NULL;
step->ephemera.package_argument = NULL;
for (int i=0; i<MAX_RPSYM; i++) {
@ -107,7 +107,7 @@ avoid repeatedly linting the same tree, since that really would be slow.
S->ephemera.repositories[step->repository_argument] = InterTree::new();
inter_tree *I = S->ephemera.repositories[step->repository_argument];
if (I == NULL) {
RunningPipelines::error("no Inter tree to apply this step to");
RunningPipelines::error(step, "no Inter tree to apply this step to");
active = FALSE;
} else {
if (I != last_linted) { Inter::Defn::lint(I); last_linted = I; }
@ -119,7 +119,7 @@ avoid repeatedly linting the same tree, since that really would be slow.
if ((VM) && (step->take_generator_argument_from_VM)) {
step->generator_argument = Generators::find_for(VM);
if (step->generator_argument == NULL) {
RunningPipelines::error("unable to guess a suitable code-generator");
RunningPipelines::error(step, "unable to guess a suitable code-generator");
active = FALSE;
}
}
@ -128,7 +128,7 @@ avoid repeatedly linting the same tree, since that really would be slow.
step->ephemera.package_argument =
Inter::Packages::by_url(step->ephemera.repository, step->package_URL_argument);
if (step->ephemera.package_argument == NULL) {
RunningPipelines::error_with(
RunningPipelines::error_with(step,
"pipeline step applied to package which does not exist: '%S'",
step->package_URL_argument);
active = FALSE;
@ -139,7 +139,7 @@ avoid repeatedly linting the same tree, since that really would be slow.
if (ParsingPipelines::will_write_a_file(step)) {
if (Str::len(step->step_argument) == 0) {
if (step->step_stage->stage_arg != OPTIONAL_TEXT_OUT_STAGE_ARG) {
RunningPipelines::error("no filename given in pipeline step");
RunningPipelines::error(step, "no filename given in pipeline step");
active = FALSE;
}
} else {
@ -151,7 +151,7 @@ avoid repeatedly linting the same tree, since that really would be slow.
text_stream text_output_struct;
text_stream *T = &text_output_struct;
if (STREAM_OPEN_TO_FILE(T, step->ephemera.parsed_filename, ISO_ENC) == FALSE) {
RunningPipelines::error("unable to open file named in pipeline step");
RunningPipelines::error(step, "unable to open file named in pipeline step");
active = FALSE;
} else {
step->ephemera.to_stream = T;
@ -162,11 +162,11 @@ avoid repeatedly linting the same tree, since that really would be slow.
}
} else if (ParsingPipelines::will_read_a_file(step)) {
if (Str::len(step->step_argument) == 0) {
RunningPipelines::error("no filename given in pipeline step");
RunningPipelines::error(step, "no filename given in pipeline step");
active = FALSE;
} else if (Str::eq(step->step_argument, I"*memory")) {
if (Str::eq(step->step_stage->stage_name, I"read") == FALSE) {
RunningPipelines::error("'*memory' can be used only on reads");
RunningPipelines::error(step, "'*memory' can be used only on reads");
active = FALSE;
} else {
S->ephemera.repositories[step->repository_argument] =
@ -368,38 +368,73 @@ The moment there is something wrong with the pipeline itself, we come to a
complete halt. It's the kindest way.
=
void RunningPipelines::error(char *erm) {
#ifdef PROBLEMS_MODULE
void RunningPipelines::error(pipeline_step *step, char *erm) {
#ifdef CORE_MODULE
@<Begin problem message using the module of the same name@>;
TEMPORARY_TEXT(full)
WRITE_TO(full, "%s", erm);
do_not_locate_problems = TRUE;
Problems::quote_stream(1, full);
Problems::issue_problem_begin(NULL, erm);
Problems::issue_problem_segment("I was unable to perform final code-generation: %1");
Problems::issue_problem_end();
do_not_locate_problems = FALSE;
DISCARD_TEXT(full)
@<End problem message using the module of the same name@>;
#endif
#ifndef PROBLEMS_MODULE
#ifndef CORE_MODULE
Errors::fatal(erm);
exit(1);
#endif
}
void RunningPipelines::error_with(char *erm, text_stream *quoted) {
#ifdef PROBLEMS_MODULE
void RunningPipelines::error_with(pipeline_step *step, char *erm, text_stream *quoted) {
#ifdef CORE_MODULE
@<Begin problem message using the module of the same name@>;
TEMPORARY_TEXT(full)
WRITE_TO(full, erm, quoted);
do_not_locate_problems = TRUE;
Problems::quote_stream(1, full);
Problems::issue_problem_begin(NULL, erm);
Problems::issue_problem_segment("I was unable to perform final code-generation: %1");
Problems::issue_problem_end();
do_not_locate_problems = FALSE;
@<End problem message using the module of the same name@>;
DISCARD_TEXT(full)
#endif
#ifndef PROBLEMS_MODULE
#ifndef CORE_MODULE
Errors::fatal_with_text(erm, quoted);
exit(1);
#endif
}
@<Begin problem message using the module of the same name@> =
do_not_locate_problems = TRUE;
Problems::issue_problem_begin(NULL, erm);
Problems::issue_problem_segment(
"Something went wrong late in compilation, when working through the "
"'pipeline' of code-generation steps. (This should not normally happen "
"unless your source text is making use of '(-' and '-)' and getting "
"that wrong, or unless you are experimenting with non-standard pipelines.) "
"The pipeline looks like so:");
Problems::issue_problem_end();
@<End problem message using the module of the same name@> =
if (step) {
inter_pipeline *pipeline = step->pipeline;
pipeline_step *some_step;
int N = 1;
LOOP_OVER_LINKED_LIST(some_step, pipeline_step, pipeline->steps) {
TEMPORARY_TEXT(description)
ParsingPipelines::write_step(description, some_step);
Problems::issue_problem_begin(Task::syntax_tree(), "****");
Problems::quote_number(1, &N);
if (some_step == step) {
Problems::quote_stream_tinted_red(2, description);
Problems::issue_problem_segment("%1. %2");
} else {
Problems::quote_stream_tinted_green(2, description);
Problems::issue_problem_segment("%1. %2");
}
DISCARD_TEXT(description)
Problems::issue_problem_end();
if (some_step == step) {
Problems::issue_problem_begin(Task::syntax_tree(), "****");
Problems::quote_stream(1, full);
Problems::issue_problem_segment("Problem: %1");
Problems::issue_problem_end();
}
N++;
}
}
do_not_locate_problems = FALSE;

View file

@ -0,0 +1,62 @@
[AttachStage::] Attach Stage.
Reading other Inter trees as binary files, and attaching them at given points
in the main Inter tree.
@ Linking is not a symmetrical process: one Inter tree remains the primary one --
usually this will be the tree still in memory which was compiled by Inform 7
from source text. That needs to be linked to Inter from, for example, kits
such as |WorldModelKit|. This is a non-trivial process, but begins easily
enough, with each of those secondary Inter trees in turn being read in from
a binary Inter file, and then attached to (i.e., made part of) the primary tree.
The primary tree cannot "know", of itself, where these secondary trees will
live in the file system, so the |attach| stage needs to be given instructions
on the side. This is done with the "requirements list" of the step.
=
void AttachStage::create_pipeline_stage(void) {
ParsingPipelines::new_stage(I"attach", AttachStage::run, NO_STAGE_ARG, FALSE);
}
int AttachStage::run(pipeline_step *step) {
attachment_instruction *req;
LOOP_OVER_LINKED_LIST(req, attachment_instruction, step->ephemera.requirements_list) {
inter_architecture *A = PipelineModule::get_architecture();
if (A == NULL) Errors::fatal("no -architecture given");
filename *arch_file = Architectures::canonical_binary(req->location, A);
if (TextFiles::exists(arch_file) == FALSE)
internal_error("no arch file for requirement");
inter_tree *sidecar = InterTree::new();
if (Inter::Binary::test_file(arch_file)) Inter::Binary::read(sidecar, arch_file);
else Inter::Textual::read(sidecar, arch_file);
inter_package *pack = Inter::Packages::by_url(sidecar, req->attachment_point);
if (pack == NULL) {
WRITE_TO(STDERR, "sought attachment material at: %S in %f\n",
req->attachment_point, arch_file);
internal_error("unable to find attachment point package");
}
Inter::Transmigration::move(pack,
Site::main_package(step->ephemera.repository), FALSE);
}
return TRUE;
}
@ And this function is useful when building a requirements list, which is just
a linked list of //attachment_instruction//s.
=
typedef struct attachment_instruction {
struct pathname *location;
struct text_stream *attachment_point;
CLASS_DEFINITION
} attachment_instruction;
attachment_instruction *AttachStage::new(pathname *P, text_stream *attach) {
attachment_instruction *link = CREATE(attachment_instruction);
link->location = P;
link->attachment_point = Str::duplicate(attach);
return link;
}

View file

@ -1,49 +0,0 @@
[CodeGen::LinkInstructions::] Link.
Inter often needs to assimilate or otherwise deal with architecture-neutral
kits of linkable material, and this is where such requirements are noted.
@h
=
typedef struct link_instruction {
struct pathname *location;
struct text_stream *attachment_point;
CLASS_DEFINITION
} link_instruction;
link_instruction *CodeGen::LinkInstructions::new(pathname *P, text_stream *attach) {
link_instruction *link = CREATE(link_instruction);
link->location = P;
link->attachment_point = Str::duplicate(attach);
return link;
}
@h Link stage.
=
void CodeGen::LinkInstructions::create_pipeline_stage(void) {
ParsingPipelines::new_stage(I"link", CodeGen::LinkInstructions::run_link_stage, NO_STAGE_ARG, FALSE);
}
int CodeGen::LinkInstructions::run_link_stage(pipeline_step *step) {
link_instruction *req;
LOOP_OVER_LINKED_LIST(req, link_instruction, step->ephemera.requirements_list) {
inter_architecture *A = PipelineModule::get_architecture();
if (A == NULL) Errors::fatal("no -architecture given");
filename *arch_file = Architectures::canonical_binary(req->location, A);
if (TextFiles::exists(arch_file) == FALSE) internal_error("no arch file for requirement");
inter_tree *sidecar = InterTree::new();
if (Inter::Binary::test_file(arch_file)) Inter::Binary::read(sidecar, arch_file);
else Inter::Textual::read(sidecar, arch_file);
inter_package *pack = Inter::Packages::by_url(sidecar, req->attachment_point);
if (pack == NULL) {
WRITE_TO(STDERR, "sought attachment material at: %S in %f\n", req->attachment_point, arch_file);
internal_error("unable to find attachment point package");
}
Inter::Transmigration::move(pack, Site::main_package(step->ephemera.repository), FALSE);
}
return TRUE;
}

View file

@ -16,7 +16,7 @@ Chapter 2: Pipelines
Read, Move, Wipe, Stop
Chapter 3: Linking
Link
Attach Stage
Prepare
Merge Template
Template Reader

View file

@ -159,6 +159,15 @@ void Problems::problem_quote(int t, void *v, void (*f)(text_stream *, void *)) {
problem_quotations[t].text_quoted = EMPTY_WORDING;
}
void Problems::problem_quote_tinted(int t, void *v, void (*f)(text_stream *, void *), char type) {
if ((t<0) || (t > 10)) internal_error("problem quotation number out of range");
problem_quotations[t].structure_quoted = v;
problem_quotations[t].expander = f;
problem_quotations[t].quotation_type = type;
problem_quotations[t].wording_based = FALSE;
problem_quotations[t].text_quoted = EMPTY_WORDING;
}
void Problems::problem_quote_textual(int t, char type, wording W) {
if ((t<0) || (t > 10)) internal_error("problem quotation number out of range");
problem_quotations[t].structure_quoted = NULL;
@ -206,6 +215,12 @@ void Problems::expand_wide_text(OUTPUT_STREAM, void *p) {
void Problems::quote_stream(int t, text_stream *p) {
Problems::problem_quote(t, (void *) p, Problems::expand_stream);
}
void Problems::quote_stream_tinted_green(int t, text_stream *p) {
Problems::problem_quote_tinted(t, (void *) p, Problems::expand_stream, 'g');
}
void Problems::quote_stream_tinted_red(int t, text_stream *p) {
Problems::problem_quote_tinted(t, (void *) p, Problems::expand_stream, 'r');
}
void Problems::expand_stream(OUTPUT_STREAM, void *p) {
WRITE("%S", (text_stream *) p);
}
@ -429,7 +444,11 @@ ourselves, and must delegate to:
@<Expand structure-based escape@> =
Problems::append_source(EMPTY_WORDING);
TEMPORARY_TEXT(OUT)
if (problem_quotations[t].quotation_type == 'r') HTML::begin_colour(OUT, I"800000");
if (problem_quotations[t].quotation_type == 'g') HTML::begin_colour(OUT, I"008000");
(problem_quotations[t].expander)(OUT, problem_quotations[t].structure_quoted);
if (problem_quotations[t].quotation_type == 'r') HTML::end_colour(OUT);
if (problem_quotations[t].quotation_type == 'g') HTML::end_colour(OUT);
@<Spool temporary stream text to the problem buffer@>;
DISCARD_TEXT(OUT)
Problems::transcribe_appended_source();