mirror of
https://github.com/ganelson/inform.git
synced 2024-07-08 18:14:21 +03:00
475 lines
56 KiB
HTML
475 lines
56 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<html>
|
|
<head>
|
|
<title>2/sq</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<meta http-equiv="Content-Language" content="en-gb">
|
|
<link href="inweb.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
</head>
|
|
<body>
|
|
|
|
<!--Weave of '2/si' generated by 7-->
|
|
<ul class="crumbs"><li><a href="../webs.html">★</a></li><li><a href="index.html">core</a></li><li><a href="index.html#2">Chapter 2: Bridge to Problems Module</a></li><li><b>Supplementary Issues</b></li></ul><p class="purpose">Some supplementary general sorts of problem message.</p>
|
|
|
|
<ul class="toc"><li><a href="#SP1">§1. Contradictions</a></li><li><a href="#SP3">§3. Table problems</a></li><li><a href="#SP4">§4. Equation problems</a></li><li><a href="#SP5">§5. Inline definition problems</a></li><li><a href="#SP6">§6. Proposition type-checking problems</a></li><li><a href="#SP7">§7. Instance problems</a></li><li><a href="#SP10">§10. Property problems</a></li><li><a href="#SP11">§11. Extension problems</a></li><li><a href="#SP12">§12. Releasing problems</a></li><li><a href="#SP13">§13. Cartographical problems</a></li></ul><hr class="tocbar">
|
|
|
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Contradictions. </b>As soon as we combine information from two sentences, we are at risk of a
|
|
contradiction of some kind:
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::two_sentences_problem</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain"> *</span><span class="identifier">other_sentence</span><span class="plain">,</span>
|
|
<span class="reserved">char</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">explanation</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">current_sentence</span><span class="plain"> == </span><span class="identifier">other_sentence</span><span class="plain">) {</span>
|
|
<span class="identifier">Problems::Issue::sentence_problem</span><span class="plain">(</span><span class="identifier">PASS_SIGIL</span><span class="plain">, </span><span class="identifier">message</span><span class="plain">, </span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="reserved">return</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
<span class="identifier">Problems::quote_source</span><span class="plain">(1, </span><span class="identifier">current_sentence</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_source</span><span class="plain">(2, </span><span class="identifier">other_sentence</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(3, </span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(4, </span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span>
|
|
<span class="string">"You wrote %1, but in another sentence %2: %Sagain, %%%Lbut %%%3%|, %4"</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Problems::Issue::two_sentences_problem is used in 6/nv (<a href="6-nv.html#SP14_6">§14.6</a>), 16/in (<a href="16-in.html#SP20_3_3">§20.3.3</a>).</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b>Almost exactly the same thing, but happening at arbitrary positions in the
|
|
parse tree, and concerning an instance:
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::contradiction_problem</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain"> *</span><span class="identifier">A</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain"> *</span><span class="identifier">B</span><span class="plain">,</span>
|
|
<span class="reserved">instance</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">explanation</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="identifier">Problems::quote_source</span><span class="plain">(1, </span><span class="identifier">A</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_source</span><span class="plain">(2, </span><span class="identifier">B</span><span class="plain">);</span>
|
|
<span class="functiontext">Problems::quote_object</span><span class="plain">(3, </span><span class="identifier">I</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(4, </span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(5, </span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Wordings::eq</span><span class="plain">(</span><span class="identifier">ParseTree::get_text</span><span class="plain">(</span><span class="identifier">A</span><span class="plain">), </span><span class="identifier">ParseTree::get_text</span><span class="plain">(</span><span class="identifier">B</span><span class="plain">)) == </span><span class="identifier">FALSE</span><span class="plain">)</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="string">"You wrote %1, but in another sentence %2: "</span><span class="plain">);</span>
|
|
<span class="reserved">else</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="string">"You wrote %1: "</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="string">"%Sagain, %%%3 %4%|, %5"</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::infs_contradiction_problem</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain"> *</span><span class="identifier">A</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain"> *</span><span class="identifier">B</span><span class="plain">,</span>
|
|
<span class="reserved">inference_subject</span><span class="plain"> *</span><span class="identifier">infs</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">explanation</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="identifier">Problems::quote_source</span><span class="plain">(1, </span><span class="identifier">A</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_source</span><span class="plain">(2, </span><span class="identifier">B</span><span class="plain">);</span>
|
|
<span class="functiontext">Problems::quote_subject</span><span class="plain">(3, </span><span class="identifier">infs</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(4, </span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(5, </span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Wordings::eq</span><span class="plain">(</span><span class="identifier">ParseTree::get_text</span><span class="plain">(</span><span class="identifier">A</span><span class="plain">), </span><span class="identifier">ParseTree::get_text</span><span class="plain">(</span><span class="identifier">B</span><span class="plain">)) == </span><span class="identifier">FALSE</span><span class="plain">)</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="string">"You wrote %1, but in another sentence %2: "</span><span class="plain">);</span>
|
|
<span class="reserved">else</span><span class="plain"> </span><span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="string">"You wrote %1: "</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="string">"%Sagain, %%%3 %4%|, %5"</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Problems::Issue::contradiction_problem appears nowhere else.</p>
|
|
|
|
<p class="endnote">The function Problems::Issue::infs_contradiction_problem is used in 6/rlt (<a href="6-rlt.html#SP28">§28</a>), 15/ia (<a href="15-ia.html#SP1_1">§1.1</a>), 16/cmw (<a href="16-cmw.html#SP1_2_2_1_1_1">§1.2.2.1.1.1</a>).</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. Table problems. </b>In principle we could treat these as sentence problems, but the "sentence"
|
|
for a table can be enormous: so we need something which can show which
|
|
table we are in, yet still only cite a small part of it —
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::table_problem</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="reserved">table</span><span class="plain"> *</span><span class="identifier">t</span><span class="plain">, </span><span class="reserved">table_column</span><span class="plain"> *</span><span class="identifier">tc</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain"> *</span><span class="identifier">data</span><span class="plain">,</span>
|
|
<span class="reserved">char</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="identifier">current_sentence</span><span class="plain"> = </span><span class="identifier">t</span><span class="plain">-</span><span class="element">>headline_fragment</span><span class="plain">;</span>
|
|
<span class="functiontext">Problems::quote_table</span><span class="plain">(1, </span><span class="identifier">t</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">tc</span><span class="plain">) </span><span class="identifier">Problems::quote_wording</span><span class="plain">(2, </span><span class="identifier">Nouns::nominative</span><span class="plain">(</span><span class="identifier">tc</span><span class="plain">-</span><span class="element">>name</span><span class="plain">));</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">data</span><span class="plain">) </span><span class="identifier">Problems::quote_source</span><span class="plain">(3, </span><span class="identifier">data</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="string">""</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Problems::Issue::table_problem is used in 19/tc (<a href="19-tc.html#SP6_1">§6.1</a>, <a href="19-tc.html#SP9">§9</a>, <a href="19-tc.html#SP11_1">§11.1</a>, <a href="19-tc.html#SP11_2">§11.2</a>, <a href="19-tc.html#SP11_3">§11.3</a>, <a href="19-tc.html#SP14_1">§14.1</a>, <a href="19-tc.html#SP14_2">§14.2</a>, <a href="19-tc.html#SP15_1">§15.1</a>, <a href="19-tc.html#SP15_2">§15.2</a>, <a href="19-tc.html#SP15_3">§15.3</a>, <a href="19-tc.html#SP15_4">§15.4</a>, <a href="19-tc.html#SP15_5">§15.5</a>, <a href="19-tc.html#SP15_6">§15.6</a>, <a href="19-tc.html#SP16">§16</a>), 19/tb (<a href="19-tb.html#SP20_9">§20.9</a>, <a href="19-tb.html#SP20_9_1">§20.9.1</a>, <a href="19-tb.html#SP20_9_2">§20.9.2</a>, <a href="19-tb.html#SP24_4">§24.4</a>, <a href="19-tb.html#SP24_5">§24.5</a>, <a href="19-tb.html#SP24_6_1">§24.6.1</a>, <a href="19-tb.html#SP25_2">§25.2</a>, <a href="19-tb.html#SP26_2">§26.2</a>, <a href="19-tb.html#SP26_3">§26.3</a>), 19/tod (<a href="19-tod.html#SP6_3_1">§6.3.1</a>, <a href="19-tod.html#SP6_3_2">§6.3.2</a>, <a href="19-tod.html#SP6_3_4">§6.3.4</a>, <a href="19-tod.html#SP7_1">§7.1</a>).</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP4"></a><b>§4. Equation problems. </b>So this is where hopes are generically dashed about equations:
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::equation_problem</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="reserved">equation</span><span class="plain"> *</span><span class="identifier">eqn</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">p</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="identifier">Problems::quote_source</span><span class="plain">(1, </span><span class="identifier">current_sentence</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_wording</span><span class="plain">(2, </span><span class="identifier">eqn</span><span class="plain">-</span><span class="element">>equation_text</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(3, </span><span class="identifier">p</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="string">""</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="string">"In %1, you define an equation '%2': but "</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="identifier">text</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::equation_problem_S</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="reserved">equation</span><span class="plain"> *</span><span class="identifier">eqn</span><span class="plain">, </span><span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">p</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="identifier">Problems::quote_source</span><span class="plain">(1, </span><span class="identifier">current_sentence</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_wording</span><span class="plain">(2, </span><span class="identifier">eqn</span><span class="plain">-</span><span class="element">>equation_text</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_stream</span><span class="plain">(3, </span><span class="identifier">p</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="string">""</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="string">"In %1, you define an equation '%2': but "</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="identifier">text</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::equation_symbol_problem</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="reserved">equation</span><span class="plain"> *</span><span class="identifier">eqn</span><span class="plain">, </span><span class="identifier">wording</span><span class="plain"> </span><span class="identifier">W</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="identifier">Problems::quote_source</span><span class="plain">(1, </span><span class="identifier">current_sentence</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_wording</span><span class="plain">(2, </span><span class="identifier">W</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(3, </span><span class="identifier">text</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="string">""</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span>
|
|
<span class="string">"In %1, you define an equation which mentions the symbol '%2': but %3"</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Problems::Issue::equation_problem is used in 20/eq (<a href="20-eq.html#SP28">§28</a>, <a href="20-eq.html#SP28_1_2">§28.1.2</a>, <a href="20-eq.html#SP28_2">§28.2</a>, <a href="20-eq.html#SP28_3">§28.3</a>, <a href="20-eq.html#SP39">§39</a>, <a href="20-eq.html#SP41_1">§41.1</a>, <a href="20-eq.html#SP41_3">§41.3</a>, <a href="20-eq.html#SP41_2_1">§41.2.1</a>).</p>
|
|
|
|
<p class="endnote">The function Problems::Issue::equation_problem_S is used in 20/eq (<a href="20-eq.html#SP28_1_1">§28.1.1</a>, <a href="20-eq.html#SP28_1_3">§28.1.3</a>).</p>
|
|
|
|
<p class="endnote">The function Problems::Issue::equation_symbol_problem is used in 20/eq (<a href="20-eq.html#SP15">§15</a>, <a href="20-eq.html#SP17_1">§17.1</a>, <a href="20-eq.html#SP17_2">§17.2</a>, <a href="20-eq.html#SP17_3">§17.3</a>, <a href="20-eq.html#SP18_1">§18.1</a>, <a href="20-eq.html#SP18_2">§18.2</a>).</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP5"></a><b>§5. Inline definition problems. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::inline_problem</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="reserved">phrase</span><span class="plain"> *</span><span class="identifier">ph</span><span class="plain">, </span><span class="identifier">text_stream</span><span class="plain"> *</span><span class="reserved">definition</span><span class="plain">,</span>
|
|
<span class="reserved">char</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="identifier">Problems::quote_source</span><span class="plain">(1, </span><span class="identifier">current_sentence</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_stream</span><span class="plain">(2, </span><span class="reserved">definition</span><span class="plain">);</span>
|
|
<span class="identifier">wording</span><span class="plain"> </span><span class="identifier">XW</span><span class="plain"> = </span><span class="functiontext">Phrases::Usage::get_preamble_text</span><span class="plain">(&(</span><span class="identifier">ph</span><span class="plain">-</span><span class="element">>usage_data</span><span class="plain">));</span>
|
|
<span class="identifier">Problems::quote_wording_as_source</span><span class="plain">(3, </span><span class="identifier">XW</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="string">""</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span>
|
|
<span class="string">"You wrote %1, which I read as making use of the phrase %3. This in turn "</span>
|
|
<span class="string">"has what's called an 'inline' definition, written in a technical notation "</span>
|
|
<span class="string">"usually needed only by the Standard Rules or other low-level extensions. "</span>
|
|
<span class="string">"The definition here is '%2' but it seems to be broken. "</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Problems::Issue::inline_problem is used in 25/cii (<a href="25-cii.html#SP3_2_1_2">§3.2.1.2</a>, <a href="25-cii.html#SP3_5_4_1">§3.5.4.1</a>, <a href="25-cii.html#SP3_5_5">§3.5.5</a>, <a href="25-cii.html#SP3_5_6">§3.5.6</a>, <a href="25-cii.html#SP3_6_3">§3.6.3</a>, <a href="25-cii.html#SP3_7">§3.7</a>, <a href="25-cii.html#SP3_7_1">§3.7.1</a>, <a href="25-cii.html#SP3_5_2_1">§3.5.2.1</a>).</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP6"></a><b>§6. Proposition type-checking problems. </b>Are mostly issued thus:
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::tcp_problem</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="reserved">tc_problem_kit</span><span class="plain"> *</span><span class="identifier">tck</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">prototype</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">tck</span><span class="plain">-</span><span class="element">>issue_error</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="identifier">Problems::quote_source</span><span class="plain">(1, </span><span class="identifier">current_sentence</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_wording</span><span class="plain">(2, </span><span class="identifier">tck</span><span class="plain">-</span><span class="element">>ew_text</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(3, </span><span class="identifier">tck</span><span class="plain">-</span><span class="element">>intention</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="string">""</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span>
|
|
<span class="string">"In the sentence %1, it looks as if you intend '%2' to %3, but "</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="identifier">prototype</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
<span class="identifier">tck</span><span class="plain">-</span><span class="element">>flag_problem</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Problems::Issue::tcp_problem is used in 6/tur (<a href="6-tur.html#SP5">§5</a>), 11/tcp (<a href="11-tcp.html#SP6_9">§6.9</a>, <a href="11-tcp.html#SP6_10">§6.10</a>, <a href="11-tcp.html#SP6_11">§6.11</a>, <a href="11-tcp.html#SP10">§10</a>, <a href="11-tcp.html#SP11">§11</a>, <a href="11-tcp.html#SP11_3">§11.3</a>, <a href="11-tcp.html#SP12">§12</a>), 12/ter (<a href="12-ter.html#SP5">§5</a>, <a href="12-ter.html#SP5_1">§5.1</a>), 12/qr (<a href="12-qr.html#SP5">§5</a>), 15/tpr (<a href="15-tpr.html#SP5">§5</a>), 15/cr (<a href="15-cr.html#SP5">§5</a>), 15/spr2 (<a href="15-spr2.html#SP9_1">§9.1</a>, <a href="15-spr2.html#SP9_2">§9.2</a>).</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP7"></a><b>§7. Instance problems. </b>Instances can be created rather indirectly (for instance, in the course of
|
|
assemblies of other instances), and their properties are sometimes inferred
|
|
from information in sentences far distant, so we can't always locate
|
|
these problems at any particular sentence.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::object_problem</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="reserved">instance</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain">,</span>
|
|
<span class="reserved">char</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">explanation</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="functiontext">Problems::quote_object</span><span class="plain">(1, </span><span class="identifier">I</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(2, </span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(3, </span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="string">"The %1 %2%|, %3"</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::object_problem_at_sentence</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="reserved">instance</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain">,</span>
|
|
<span class="reserved">char</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">explanation</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="identifier">Problems::quote_source</span><span class="plain">(1, </span><span class="identifier">current_sentence</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(2, </span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(3, </span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="functiontext">Problems::quote_object</span><span class="plain">(4, </span><span class="identifier">I</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="string">"You wrote %1, but the %4 %2%|, %3"</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::subject_problem_at_sentence</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="reserved">inference_subject</span><span class="plain"> *</span><span class="identifier">infs</span><span class="plain">,</span>
|
|
<span class="reserved">char</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">explanation</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="identifier">Problems::quote_source</span><span class="plain">(1, </span><span class="identifier">current_sentence</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(2, </span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(3, </span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="functiontext">Problems::quote_subject</span><span class="plain">(4, </span><span class="identifier">infs</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="string">"You wrote %1, but the %4 %2%|, %3"</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Problems::Issue::object_problem appears nowhere else.</p>
|
|
|
|
<p class="endnote">The function Problems::Issue::object_problem_at_sentence appears nowhere else.</p>
|
|
|
|
<p class="endnote">The function Problems::Issue::subject_problem_at_sentence is used in 9/ma (<a href="9-ma.html#SP3_3_39_5">§3.3.39.5</a>).</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP8"></a><b>§8. </b>When objects are created with bizarre names, this is usually a symptom of
|
|
some other malaise, and so we issue the following message with a little
|
|
more tact (and in particular, we don't assert very confidently that what
|
|
we are dealing with is genuinely an object).
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::subject_creation_problem</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="reserved">inference_subject</span><span class="plain"> *</span><span class="identifier">subj</span><span class="plain">,</span>
|
|
<span class="reserved">char</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">explanation</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="functiontext">Problems::quote_subject</span><span class="plain">(1, </span><span class="identifier">subj</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(2, </span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(3, </span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="identifier">wording</span><span class="plain"> </span><span class="identifier">W</span><span class="plain"> = </span><span class="functiontext">InferenceSubjects::get_name_text</span><span class="plain">(</span><span class="identifier">subj</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Wordings::nonempty</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">)) {</span>
|
|
<span class="identifier">Problems::quote_source</span><span class="plain">(4, </span><span class="identifier">NounPhrases::new_raw</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">));</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span>
|
|
<span class="string">"I've made something called %4 but it %2%|, %3"</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span>
|
|
<span class="string">"I've made something called '%1' but it %2%|, %3"</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Problems::Issue::subject_creation_problem appears nowhere else.</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP9"></a><b>§9. </b>Information about objects is assembled in a mass of inferences. When these
|
|
contradict each other, that is usually the occasion for a contradiction
|
|
problem (see above); the following routine is used only when inferences
|
|
are implied which necessarily make no sense, rather than merely contingently
|
|
making no sense.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::inference_problem</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="reserved">inference_subject</span><span class="plain"> *</span><span class="identifier">infs</span><span class="plain">, </span><span class="reserved">inference</span><span class="plain"> *</span><span class="identifier">inf</span><span class="plain">,</span>
|
|
<span class="reserved">char</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">explanation</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="functiontext">Problems::quote_subject</span><span class="plain">(1, </span><span class="identifier">infs</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_source</span><span class="plain">(2, </span><span class="functiontext">World::Inferences::where_inferred</span><span class="plain">(</span><span class="identifier">inf</span><span class="plain">));</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(3, </span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(4, </span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="functiontext">Problems::quote_property</span><span class="plain">(5, </span><span class="functiontext">World::Inferences::get_property</span><span class="plain">(</span><span class="identifier">inf</span><span class="plain">));</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span>
|
|
<span class="string">"You wrote %2: but the property %5 for the %1 %3%|, %4"</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Problems::Issue::inference_problem is used in 15/ia (<a href="15-ia.html#SP2">§2</a>), 16/cmw (<a href="16-cmw.html#SP1_2_1">§1.2.1</a>).</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP10"></a><b>§10. Property problems. </b>Just occasionally there is a problem with the definition of a property in the
|
|
abstract, rather than with the actual property of some specific object.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::property_problem</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="reserved">property</span><span class="plain"> *</span><span class="identifier">prn</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">explanation</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="functiontext">Problems::quote_property</span><span class="plain">(1, </span><span class="identifier">prn</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(2, </span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(3, </span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="identifier">explanation</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="string">"The %1 %2%|, %3"</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Problems::Issue::property_problem appears nowhere else.</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP11"></a><b>§11. Extension problems. </b>These are generated when the user tries to employ a malformed extension.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::extension_problem</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="reserved">extension_file</span><span class="plain"> *</span><span class="identifier">ef</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="functiontext">Problems::quote_extension</span><span class="plain">(1, </span><span class="identifier">ef</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(2, </span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span>
|
|
<span class="string">"The extension %1, which your source text makes use of, %2."</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::extension_problem_S</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="reserved">extension_file</span><span class="plain"> *</span><span class="identifier">ef</span><span class="plain">, </span><span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="functiontext">Problems::quote_extension</span><span class="plain">(1, </span><span class="identifier">ef</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_stream</span><span class="plain">(2, </span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="string">""</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span>
|
|
<span class="string">"The extension %1, which your source text makes use of, %2."</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Problems::Issue::extension_problem is used in 7/ss (<a href="7-ss.html#SP9_1">§9.1</a>, <a href="7-ss.html#SP9_2">§9.2</a>, <a href="7-ss.html#SP12">§12</a>).</p>
|
|
|
|
<p class="endnote">The function Problems::Issue::extension_problem_S is used in 8/ef (<a href="8-ef.html#SP8">§8</a>).</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP12"></a><b>§12. Releasing problems. </b>These occur when the release instructions do not make sense. Sometimes it's
|
|
possible to pin down an exact place where the difficulty occurs, but
|
|
sometimes not.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::release_problem</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">, </span><span class="identifier">filename</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(1, </span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">fn</span><span class="plain">);</span>
|
|
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">fn</span><span class="plain">, </span><span class="string">"%f"</span><span class="plain">, </span><span class="identifier">name</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_stream</span><span class="plain">(2, </span><span class="identifier">fn</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="string">"A problem occurred with the 'Release along with...': "</span>
|
|
<span class="string">"instructions: %1 (with the file '%2')"</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">fn</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::release_problem_path</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">, </span><span class="identifier">pathname</span><span class="plain"> *</span><span class="identifier">path</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(1, </span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">pn</span><span class="plain">);</span>
|
|
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">pn</span><span class="plain">, </span><span class="string">"%p"</span><span class="plain">, </span><span class="identifier">path</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_stream</span><span class="plain">(2, </span><span class="identifier">pn</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="string">"A problem occurred with the 'Release along with...': "</span>
|
|
<span class="string">"instructions: %1 (with the file '%2')"</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">pn</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::release_problem_at_sentence</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">, </span><span class="identifier">filename</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(1, </span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">fn</span><span class="plain">);</span>
|
|
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">fn</span><span class="plain">, </span><span class="string">"%f"</span><span class="plain">, </span><span class="identifier">name</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_stream</span><span class="plain">(2, </span><span class="identifier">fn</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_source</span><span class="plain">(3, </span><span class="identifier">current_sentence</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="string">"A problem occurred with the 'Release along with...': "</span>
|
|
<span class="string">"instructions (%3): %1 (with the file '%2')"</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">fn</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Problems::Issue::release_problem appears nowhere else.</p>
|
|
|
|
<p class="endnote">The function Problems::Issue::release_problem_path appears nowhere else.</p>
|
|
|
|
<p class="endnote">The function Problems::Issue::release_problem_at_sentence appears nowhere else.</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP13"></a><b>§13. Cartographical problems. </b>The map-maker used for the World index and also the EPS-file output has its
|
|
own quaint syntax, and where there is syntax, there are error messages:
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::map_problem</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain"> *</span><span class="identifier">q</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="identifier">Problems::quote_source</span><span class="plain">(1, </span><span class="identifier">q</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(2, </span><span class="identifier">message</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="string">""</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span><span class="string">"You gave as a hint in map-making: %1. %2"</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Problems::Issue::map_problem_wanted_but</span><span class="plain">(</span><span class="identifier">SIGIL_ARGUMENTS</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain"> *</span><span class="identifier">q</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">i_wanted_a</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">vw1</span><span class="plain">) {</span>
|
|
<span class="identifier">ACT_ON_SIGIL</span>
|
|
<span class="identifier">Problems::quote_source</span><span class="plain">(1, </span><span class="identifier">q</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_text</span><span class="plain">(2, </span><span class="identifier">i_wanted_a</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::quote_wording</span><span class="plain">(3, </span><span class="identifier">Wordings::one_word</span><span class="plain">(</span><span class="identifier">vw1</span><span class="plain">));</span>
|
|
<span class="identifier">Problems::issue_problem_begin</span><span class="plain">(</span><span class="string">""</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_segment</span><span class="plain">(</span>
|
|
<span class="string">"You gave as a hint in map-making: %1. But the value '%3' did not "</span>
|
|
<span class="string">"fit - it should have been %2."</span><span class="plain">);</span>
|
|
<span class="identifier">Problems::issue_problem_end</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Problems::Issue::map_problem appears nowhere else.</p>
|
|
|
|
<p class="endnote">The function Problems::Issue::map_problem_wanted_but appears nowhere else.</p>
|
|
|
|
<hr class="tocbar">
|
|
<ul class="toc"><li><a href="2-sq.html">Back to 'Supplementary Quotes'</a></li><li><i>(This section ends Chapter 2: Bridge to Problems Module.)</i></li></ul><hr class="tocbar">
|
|
<!--End of weave-->
|
|
</body>
|
|
</html>
|
|
|