mirror of
https://github.com/ganelson/inform.git
synced 2024-06-17 07:40:47 +03:00
Fix for two unrelated issues in Jira bug report I7-2090
This commit is contained in:
parent
4c165060a5
commit
03d5d1e40d
|
@ -431,8 +431,6 @@ might then produce a name like <span class="extract"><span class="extract-syntax
|
|||
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>§14. </b>All of the above use this command back-end:
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">DEFAULT_INAME_TRUNCATION</span><span class="plain-syntax"> </span><span class="constant-syntax">28</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">HierarchyLocations::iip</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">HierarchyLocations::iip</span></span>:<br/><a href="1-hl.html#SP8_1">§8.1</a>, <a href="1-hl.html#SP9">§9</a>, <a href="1-hl.html#SP10">§10</a>, <a href="1-hl.html#SP11">§11</a>, <a href="1-hl.html#SP12">§12</a>, <a href="1-hl.html#SP13">§13</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="reserved-syntax">package_request</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">derive_from</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">fix</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">imposed_name</span><span class="plain-syntax">,</span>
|
||||
|
|
|
@ -214,6 +214,8 @@ what the red button marked "danger" does.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pipeline_error_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PipelineErrors::kit_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">PipelineErrors::kit_error</span></span>:<br/>Parsing Stages - <a href="3-ps.html#SP2_3">§2.3</a><br/>Resolve Conditional Compilation Stage - <a href="3-rccs.html#SP2">§2</a>, <a href="3-rccs.html#SP3_4">§3.4</a>, <a href="3-rccs.html#SP3_2_2">§3.2.2</a>, <a href="3-rccs.html#SP3_5">§3.5</a>, <a href="3-rccs.html#SP3_6">§3.6</a><br/>Compile Splats Stage - <a href="3-css.html#SP3_1_3_1_4_5_1">§3.1.3.1.4.5.1</a>, <a href="3-css.html#SP3_1_3_1_4_5_2">§3.1.3.1.4.5.2</a>, <a href="3-css.html#SP3_1_3_1_4_5_2_1">§3.1.3.1.4.5.2.1</a>, <a href="3-css.html#SP3_2_1">§3.2.1</a>, <a href="3-css.html#SP3_2_2">§3.2.2</a>, <a href="3-css.html#SP6_8">§6.8</a>, <a href="3-css.html#SP6_10">§6.10</a>, <a href="3-css.html#SP13">§13</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">quote</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">PROBLEMS_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">M</span><span class="plain-syntax">)</span>
|
||||
|
@ -221,7 +223,7 @@ what the red button marked "danger" does.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_stream</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">M</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::handmade_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</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">Problems::issue_problem_segment</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"My low-level reader of source code reported a mistake - \"%1\"."</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"My low-level reader of source code reported a mistake - \"%1\". "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"%PLow-level material written in Inform 6 syntax occurs either in kits or "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"in matter written inside 'Include (- ... -)' in source text, either in "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"the main source or in an extension used by it."</span><span class="plain-syntax">);</span>
|
||||
|
@ -231,6 +233,16 @@ what the red button marked "danger" does.
|
|||
<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">Errors::with_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">message</span><span class="plain-syntax">, </span><span class="identifier-syntax">quote</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">pipeline_error_count</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">PipelineErrors::reset_errors</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">PipelineErrors::reset_errors</span></span>:<br/>Compile Splats Stage - <a href="3-css.html#SP2">§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="identifier-syntax">pipeline_error_count</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">PipelineErrors::errors_occurred</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">PipelineErrors::errors_occurred</span></span>:<br/>Compile Splats Stage - <a href="3-css.html#SP2">§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">pipeline_error_count</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
|
|
|
@ -105,6 +105,7 @@ function definition, that is quite a lot of work.
|
|||
</li></ul>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">CompileSplatsStage::run</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">CompileSplatsStage::run</span></span>:<br/><a href="3-css.html#SP1">§1</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="plain-syntax"> </span><a href="2-pe.html#SP3" class="function-link"><span class="function-syntax">PipelineErrors::reset_errors</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">compile_splats_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">css</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-css.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Initialise the CS state</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">tree</span><span class="plain-syntax">;</span>
|
||||
|
@ -113,6 +114,7 @@ function definition, that is quite a lot of work.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">errors_found</span><span class="plain-syntax"> = </span><a href="3-css.html#SP12" class="function-link"><span class="function-syntax">CompileSplatsStage::function_bodies</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">, &</span><span class="identifier-syntax">css</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">errors_found</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterTree::traverse</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><a href="3-css.html#SP3" class="function-link"><span class="function-syntax">CompileSplatsStage::visitor3</span></a><span class="plain-syntax">, &</span><span class="identifier-syntax">css</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">SPLAT_IST</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-pe.html#SP3" class="function-link"><span class="function-syntax">PipelineErrors::errors_occurred</span></a><span class="plain-syntax">()) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -620,19 +622,24 @@ see why other kits would, either.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-css.html#SP3_1_3_1_4_5_2_2" class="named-paragraph-link"><span class="named-paragraph">Extract a token</span><span class="named-paragraph-number">3.1.3.1.4.5.2.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"+"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="2-pe.html#SP3" class="function-link"><span class="function-syntax">PipelineErrors::kit_error</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Inform 6 array declaration using operator '+'"</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">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"-"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="2-pe.html#SP3" class="function-link"><span class="function-syntax">PipelineErrors::kit_error</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Inform 6 array declaration using operator '-'"</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">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"*"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="2-pe.html#SP3" class="function-link"><span class="function-syntax">PipelineErrors::kit_error</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Inform 6 array declaration using operator '*'"</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">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"/"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="2-pe.html#SP3" class="function-link"><span class="function-syntax">PipelineErrors::kit_error</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Inform 6 array declaration using operator '/'"</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">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterValuePairs::undef</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-css.html#SP3_1_3_1_4_1_1" class="named-paragraph-link"><span class="named-paragraph">Assimilate a value</span><span class="named-paragraph-number">3.1.3.1.4.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-css.html#SP3_1_3_1_4_5_2_1" class="named-paragraph-link"><span class="named-paragraph">Add value to the entry pile</span><span class="named-paragraph-number">3.1.3.1.4.5.2.1</span></a></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">finished</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="2-pe.html#SP3" class="function-link"><span class="function-syntax">PipelineErrors::kit_error</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Inform 6 array declaration using operator '+' "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"(use brackets '(' ... ')' around the size for a calculated array size)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"-"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="2-pe.html#SP3" class="function-link"><span class="function-syntax">PipelineErrors::kit_error</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Inform 6 array declaration using operator '-' "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"(use brackets '(' ... ')' around the size for a calculated array size)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"*"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="2-pe.html#SP3" class="function-link"><span class="function-syntax">PipelineErrors::kit_error</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Inform 6 array declaration using operator '*' "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"(use brackets '(' ... ')' around the size for a calculated array size)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"/"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="2-pe.html#SP3" class="function-link"><span class="function-syntax">PipelineErrors::kit_error</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Inform 6 array declaration using operator '/' "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"(use brackets '(' ... ')' around the size for a calculated array size)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="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">value</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_pair</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterValuePairs::undef</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-css.html#SP3_1_3_1_4_1_1" class="named-paragraph-link"><span class="named-paragraph">Assimilate a value</span><span class="named-paragraph-number">3.1.3.1.4.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-css.html#SP3_1_3_1_4_5_2_1" class="named-paragraph-link"><span class="named-paragraph">Add value to the entry pile</span><span class="named-paragraph-number">3.1.3.1.4.5.2.1</span></a></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">finished</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</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">value</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
|
|
|
@ -253,7 +253,7 @@ Sausages by Mr Punch, and loaded it, but then read the sentence
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-inc.html#SP5_1" class="named-paragraph-link"><span class="named-paragraph">Read the extension file into the lexer, and break it into body and documentation</span><span class="named-paragraph-number">5.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">for_project</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">for_project</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">E</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax">, </span><span class="identifier-syntax">for_project</span><span class="plain-syntax">-></span><span class="element-syntax">extensions_included</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -168,7 +168,7 @@ inform_extension *Inclusions::load(parse_node *last_H0, parse_node *at,
|
|||
return E;
|
||||
}
|
||||
@<Read the extension file into the lexer, and break it into body and documentation@>;
|
||||
if (for_project)
|
||||
if ((for_project) && (E))
|
||||
ADD_TO_LINKED_LIST(E, inform_extension, for_project->extensions_included);
|
||||
return E;
|
||||
}
|
||||
|
|
|
@ -1,33 +1,32 @@
|
|||
100.0% in inform7 run
|
||||
71.3% in compilation to Inter
|
||||
50.9% in //Sequence::undertake_queued_tasks//
|
||||
70.9% in compilation to Inter
|
||||
50.3% in //Sequence::undertake_queued_tasks//
|
||||
4.7% in //MajorNodes::pre_pass//
|
||||
3.3% in //MajorNodes::pass_1//
|
||||
1.7% in //ImperativeDefinitions::assess_all//
|
||||
1.7% in //RTPhrasebook::compile_entries//
|
||||
1.3% in //RTKindConstructors::compile//
|
||||
0.9% in //Sequence::lint_inter//
|
||||
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//
|
||||
2.8% not specifically accounted for
|
||||
25.6% in running Inter pipeline
|
||||
3.4% in //MajorNodes::pass_1//
|
||||
1.8% in //ImperativeDefinitions::assess_all//
|
||||
1.8% in //RTPhrasebook::compile_entries//
|
||||
1.4% in //RTKindConstructors::compile//
|
||||
1.0% in //Sequence::lint_inter//
|
||||
0.6% in //MajorNodes::pass_2//
|
||||
0.6% in //Sequence::undertake_queued_tasks//
|
||||
0.6% in //World::stage_V//
|
||||
0.4% in //ImperativeDefinitions::compile_first_block//
|
||||
0.4% in //Sequence::undertake_queued_tasks//
|
||||
0.2% in //CompletionModule::compile//
|
||||
0.2% in //InferenceSubjects::emit_all//
|
||||
0.2% in //RTKindConstructors::compile_permissions//
|
||||
0.2% in //Task::make_built_in_kind_constructors//
|
||||
2.9% not specifically accounted for
|
||||
26.1% in running Inter pipeline
|
||||
10.2% in step 14/15: generate inform6 -> auto.inf
|
||||
5.5% in step 5/15: load-binary-kits
|
||||
5.3% in step 6/15: make-synoptic-module
|
||||
1.3% in step 9/15: make-identifiers-unique
|
||||
0.3% in step 12/15: eliminate-redundant-operations
|
||||
0.3% in step 4/15: compile-splats
|
||||
0.3% in step 7/15: shorten-wiring
|
||||
0.3% in step 8/15: detect-indirect-calls
|
||||
0.1% in step 11/15: eliminate-redundant-labels
|
||||
1.3% not specifically accounted for
|
||||
2.3% in supervisor
|
||||
0.6% not specifically accounted for
|
||||
5.7% in step 5/15: load-binary-kits
|
||||
5.5% in step 6/15: make-synoptic-module
|
||||
1.4% in step 9/15: make-identifiers-unique
|
||||
0.4% in step 12/15: eliminate-redundant-operations
|
||||
0.4% in step 4/15: compile-splats
|
||||
0.4% in step 7/15: shorten-wiring
|
||||
0.4% in step 8/15: detect-indirect-calls
|
||||
0.2% in step 11/15: eliminate-redundant-labels
|
||||
1.4% not specifically accounted for
|
||||
2.2% in supervisor
|
||||
0.7% not specifically accounted for
|
||||
|
|
|
@ -321,8 +321,6 @@ inter_name *HierarchyLocations::derive_iname_in(inter_tree *I, int id, inter_nam
|
|||
|
||||
@ All of the above use this command back-end:
|
||||
|
||||
@d DEFAULT_INAME_TRUNCATION 28
|
||||
|
||||
=
|
||||
inter_name *HierarchyLocations::iip(inter_tree *I, int id, package_request *P,
|
||||
wording W, inter_name *derive_from, int fix, text_stream *imposed_name,
|
||||
|
|
|
@ -139,6 +139,8 @@ power tools just lying around, people will eventually pick them up and wonder
|
|||
what the red button marked "danger" does.
|
||||
|
||||
=
|
||||
int pipeline_error_count = 0;
|
||||
|
||||
void PipelineErrors::kit_error(char *message, text_stream *quote) {
|
||||
#ifdef PROBLEMS_MODULE
|
||||
TEMPORARY_TEXT(M)
|
||||
|
@ -146,7 +148,7 @@ void PipelineErrors::kit_error(char *message, text_stream *quote) {
|
|||
Problems::quote_stream(1, M);
|
||||
StandardProblems::handmade_problem(Task::syntax_tree(), _p_(...));
|
||||
Problems::issue_problem_segment(
|
||||
"My low-level reader of source code reported a mistake - \"%1\"."
|
||||
"My low-level reader of source code reported a mistake - \"%1\". "
|
||||
"%PLow-level material written in Inform 6 syntax occurs either in kits or "
|
||||
"in matter written inside 'Include (- ... -)' in source text, either in "
|
||||
"the main source or in an extension used by it.");
|
||||
|
@ -156,4 +158,14 @@ void PipelineErrors::kit_error(char *message, text_stream *quote) {
|
|||
#ifndef PROBLEMS_MODULE
|
||||
Errors::with_text(message, quote);
|
||||
#endif
|
||||
pipeline_error_count++;
|
||||
}
|
||||
|
||||
void PipelineErrors::reset_errors(void) {
|
||||
pipeline_error_count = 0;
|
||||
}
|
||||
|
||||
int PipelineErrors::errors_occurred(void) {
|
||||
if (pipeline_error_count != 0) return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@ void CompileSplatsStage::create_pipeline_stage(void) {
|
|||
|
||||
=
|
||||
int CompileSplatsStage::run(pipeline_step *step) {
|
||||
PipelineErrors::reset_errors();
|
||||
compile_splats_state css;
|
||||
@<Initialise the CS state@>;
|
||||
inter_tree *I = step->ephemera.tree;
|
||||
|
@ -38,6 +39,7 @@ int CompileSplatsStage::run(pipeline_step *step) {
|
|||
int errors_found = CompileSplatsStage::function_bodies(step, &css, I);
|
||||
if (errors_found) return FALSE;
|
||||
InterTree::traverse(I, CompileSplatsStage::visitor3, &css, NULL, SPLAT_IST);
|
||||
if (PipelineErrors::errors_occurred()) return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -447,19 +449,24 @@ see why other kits would, either.
|
|||
TEMPORARY_TEXT(value)
|
||||
@<Extract a token@>;
|
||||
if (Str::eq(value, I"+"))
|
||||
PipelineErrors::kit_error("Inform 6 array declaration using operator '+'", NULL);
|
||||
if (Str::eq(value, I"-"))
|
||||
PipelineErrors::kit_error("Inform 6 array declaration using operator '-'", NULL);
|
||||
if (Str::eq(value, I"*"))
|
||||
PipelineErrors::kit_error("Inform 6 array declaration using operator '*'", NULL);
|
||||
if (Str::eq(value, I"/"))
|
||||
PipelineErrors::kit_error("Inform 6 array declaration using operator '/'", NULL);
|
||||
|
||||
if (Str::len(value) > 0) {
|
||||
inter_pair val = InterValuePairs::undef();
|
||||
@<Assimilate a value@>;
|
||||
@<Add value to the entry pile@>;
|
||||
} else finished = TRUE;
|
||||
PipelineErrors::kit_error("Inform 6 array declaration using operator '+' "
|
||||
"(use brackets '(' ... ')' around the size for a calculated array size)", NULL);
|
||||
else if (Str::eq(value, I"-"))
|
||||
PipelineErrors::kit_error("Inform 6 array declaration using operator '-' "
|
||||
"(use brackets '(' ... ')' around the size for a calculated array size)", NULL);
|
||||
else if (Str::eq(value, I"*"))
|
||||
PipelineErrors::kit_error("Inform 6 array declaration using operator '*' "
|
||||
"(use brackets '(' ... ')' around the size for a calculated array size)", NULL);
|
||||
else if (Str::eq(value, I"/"))
|
||||
PipelineErrors::kit_error("Inform 6 array declaration using operator '/' "
|
||||
"(use brackets '(' ... ')' around the size for a calculated array size)", NULL);
|
||||
else {
|
||||
if (Str::len(value) > 0) {
|
||||
inter_pair val = InterValuePairs::undef();
|
||||
@<Assimilate a value@>;
|
||||
@<Add value to the entry pile@>;
|
||||
} else finished = TRUE;
|
||||
}
|
||||
DISCARD_TEXT(value)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue