mirror of
https://github.com/ganelson/inform.git
synced 2024-07-01 06:24:58 +03:00
Standardised module interfaces to foundation and syntax
This commit is contained in:
parent
8b4dfae940
commit
883077bbc1
|
@ -1,6 +1,6 @@
|
||||||
# Inform 7
|
# Inform 7
|
||||||
|
|
||||||
v10.1.0-alpha.1+6Q28 'Krypton' (26 March 2020)
|
v10.1.0-alpha.1+6Q29 'Krypton' (28 March 2020)
|
||||||
|
|
||||||
## About Inform 7
|
## About Inform 7
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
Prerelease: alpha.1
|
Prerelease: alpha.1
|
||||||
Build Date: 26 March 2020
|
Build Date: 28 March 2020
|
||||||
Build Number: 6Q28
|
Build Number: 6Q29
|
||||||
|
|
|
@ -59,9 +59,10 @@
|
||||||
<!--Weave of '1/am' generated by 7-->
|
<!--Weave of '1/am' generated by 7-->
|
||||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">arch</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>Arch Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">arch</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>Arch Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="#SP1">§1. Introduction</a></li><li><a href="#SP3">§3. The beginning</a></li><li><a href="#SP4">§4. The end</a></li></ul><hr class="tocbar">
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>This section simoly sets up the module in ways expected by <code class="display"><span class="extract">foundation</span></code>, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Introduction. </b></p>
|
which use this module:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -85,7 +86,8 @@
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. The beginning. </b></p>
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>Like all modules, this one must define a <code class="display"><span class="extract">start</span></code> and <code class="display"><span class="extract">end</span></code> function:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
<pre class="display">
|
||||||
|
@ -94,16 +96,19 @@
|
||||||
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.2</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.2</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.3</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.3</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.4</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.4</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's command line switches</span> <span class="cwebmacronumber">3.5</span>><span class="character">;</span>
|
|
||||||
<span class="functiontext">Architectures::create</span><span class="plain">();</span>
|
<span class="functiontext">Architectures::create</span><span class="plain">();</span>
|
||||||
<span class="functiontext">TargetVMs::create</span><span class="plain">();</span>
|
<span class="functiontext">TargetVMs::create</span><span class="plain">();</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ArchModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
|
<span class="plain">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function ArchModule::start appears nowhere else.</p>
|
<p class="endnote">The function ArchModule::start appears nowhere else.</p>
|
||||||
|
|
||||||
|
<p class="endnote">The function ArchModule::end appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">3.1</span>> =
|
<<span class="cwebmacrodefn">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">3.1</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
@ -156,31 +161,6 @@
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_5"></a><b>§3.5. </b><code class="display">
|
|
||||||
<<span class="cwebmacrodefn">Register this module's command line switches</span> <span class="cwebmacronumber">3.5</span>> =
|
|
||||||
</code></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="displaydefn">
|
|
||||||
<span class="plain">;</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. The end. </b></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ArchModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
||||||
<span class="plain">}</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">The function ArchModule::end appears nowhere else.</p>
|
|
||||||
|
|
||||||
<hr class="tocbar">
|
<hr class="tocbar">
|
||||||
<!--End of weave-->
|
<!--End of weave-->
|
||||||
</main>
|
</main>
|
||||||
|
|
|
@ -59,15 +59,16 @@
|
||||||
<!--Weave of '1/cm' generated by 7-->
|
<!--Weave of '1/cm' generated by 7-->
|
||||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">codegen</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>Codegen Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">codegen</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>Codegen Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="#SP1">§1. Introduction</a></li><li><a href="#SP2">§2. Setting up the memory manager</a></li><li><a href="#SP4">§4. The beginning</a></li><li><a href="#SP5">§5. The end</a></li></ul><hr class="tocbar">
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>This section simoly sets up the module in ways expected by <code class="display"><span class="extract">foundation</span></code>, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Introduction. </b></p>
|
which use this module:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
<span class="definitionkeyword">define</span> <span class="constant">CODEGEN_MODULE</span><span class="plain"> </span><span class="identifier">TRUE</span>
|
<span class="definitionkeyword">define</span> <span class="constant">CODEGEN_MODULE</span><span class="plain"> </span><span class="identifier">TRUE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP2"></a><b>§2. Setting up the memory manager. </b>We need to itemise the structures we'll want to allocate:
|
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -84,9 +85,6 @@
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">generated_segment_MT</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">generated_segment_MT</span>
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">link_instruction_MT</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">link_instruction_MT</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>With allocation functions:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
<pre class="display">
|
||||||
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">I6T_intervention</span><span class="plain">)</span>
|
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">I6T_intervention</span><span class="plain">)</span>
|
||||||
|
@ -104,18 +102,18 @@
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. The beginning. </b>(The client doesn't need to call the start and end routines, because the
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>Like all modules, this one must define a <code class="display"><span class="extract">start</span></code> and <code class="display"><span class="extract">end</span></code> function:
|
||||||
foundation module does that automatically.)
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
<pre class="display">
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CodegenModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CodegenModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
<<span class="cwebmacro">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">4.2</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">3.2</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">4.3</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.3</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">4.5</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.5</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">4.6</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.6</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's command line switches</span> <span class="cwebmacronumber">4.7</span>><span class="character">;</span>
|
<span class="plain">}</span>
|
||||||
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CodegenModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
@ -123,14 +121,16 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">The function CodegenModule::start appears nowhere else.</p>
|
<p class="endnote">The function CodegenModule::start appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4_1"></a><b>§4.1. </b></p>
|
<p class="endnote">The function CodegenModule::end appears nowhere else.</p>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b></p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">CODE_GENERATION_MREASON</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">CODE_GENERATION_MREASON</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP4_2"></a><b>§4.2. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_2"></a><b>§3.2. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">4.2</span>> =
|
<<span class="cwebmacrodefn">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">3.2</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -140,10 +140,10 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP4">§4</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4_3"></a><b>§4.3. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_3"></a><b>§3.3. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">4.3</span>> =
|
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">3.3</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -153,9 +153,9 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP4">§4</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4_4"></a><b>§4.4. </b></p>
|
<p class="inwebparagraph"><a id="SP3_4"></a><b>§3.4. </b></p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -165,8 +165,8 @@ foundation module does that automatically.)
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">ELIMINATION_DA</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">ELIMINATION_DA</span>
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">CONSTANT_DEPTH_CALCULATION_DA</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">CONSTANT_DEPTH_CALCULATION_DA</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP4_5"></a><b>§4.5. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_5"></a><b>§3.5. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">4.5</span>> =
|
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.5</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -180,10 +180,10 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP4">§4</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4_6"></a><b>§4.6. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_6"></a><b>§3.6. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">4.6</span>> =
|
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.6</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -193,32 +193,7 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP4">§4</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4_7"></a><b>§4.7. </b><code class="display">
|
|
||||||
<<span class="cwebmacrodefn">Register this module's command line switches</span> <span class="cwebmacronumber">4.7</span>> =
|
|
||||||
</code></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="displaydefn">
|
|
||||||
<span class="plain">;</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP4">§4</a>.</p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP5"></a><b>§5. The end. </b></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CodegenModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
||||||
<span class="plain">}</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">The function CodegenModule::end appears nowhere else.</p>
|
|
||||||
|
|
||||||
<hr class="tocbar">
|
<hr class="tocbar">
|
||||||
<ul class="toc"><li><i>(This section begins Chapter 1: Setting Up.)</i></li><li><a href="1-stg.html">Continue with 'Stages'</a></li></ul><hr class="tocbar">
|
<ul class="toc"><li><i>(This section begins Chapter 1: Setting Up.)</i></li><li><a href="1-stg.html">Continue with 'Stages'</a></li></ul><hr class="tocbar">
|
||||||
|
|
|
@ -59,21 +59,16 @@
|
||||||
<!--Weave of '1/cm' generated by 7-->
|
<!--Weave of '1/cm' generated by 7-->
|
||||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">core</a></li><li><a href="index.html#1">Chapter 1: Configuration and Control</a></li><li><b>Core Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">core</a></li><li><a href="index.html#1">Chapter 1: Configuration and Control</a></li><li><b>Core Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="#SP2">§2. Setting up the memory manager</a></li><li><a href="#SP5">§5. The beginning</a></li><li><a href="#SP8">§8. The end</a></li></ul><hr class="tocbar">
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>This section simoly sets up the module in ways expected by <code class="display"><span class="extract">foundation</span></code>, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>There is no interesting code in this section: all Intools modules open with
|
which use this module:
|
||||||
a section like this one, configuring the memory management and debugging log
|
|
||||||
features we will use from <code class="display"><span class="extract">foundation</span></code>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph">The following symbol is defined in every tool incorporating this module:
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
<span class="definitionkeyword">define</span> <span class="constant">CORE_MODULE</span><span class="plain"> </span><span class="identifier">TRUE</span>
|
<span class="definitionkeyword">define</span> <span class="constant">CORE_MODULE</span><span class="plain"> </span><span class="identifier">TRUE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP2"></a><b>§2. Setting up the memory manager. </b>We need to itemise the structures we'll want to allocate:
|
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -259,13 +254,12 @@ features we will use from <code class="display"><span class="extract">foundation
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP5"></a><b>§5. The beginning. </b>(The client doesn't need to call the start and end routines, because the
|
<p class="inwebparagraph"><a id="SP5"></a><b>§5. </b>Next we define some functions, by macro, which write to the debugging log
|
||||||
foundation module does that automatically.)
|
or other text streams.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
<span class="definitionkeyword">define</span> <span class="constant">WORDING_LOGS_ALLOWED</span>
|
|
||||||
<span class="definitionkeyword">define</span> <span class="identifier">REGISTER_WRITER</span><span class="plain">(</span><span class="identifier">c</span><span class="plain">, </span><span class="identifier">f</span><span class="plain">) </span><span class="identifier">Writers::register_logger</span><span class="plain">(</span><span class="identifier">c</span><span class="plain">, &</span><span class="identifier">f</span><span class="plain">##</span><span class="identifier">_writer</span><span class="plain">);</span>
|
<span class="definitionkeyword">define</span> <span class="identifier">REGISTER_WRITER</span><span class="plain">(</span><span class="identifier">c</span><span class="plain">, </span><span class="identifier">f</span><span class="plain">) </span><span class="identifier">Writers::register_logger</span><span class="plain">(</span><span class="identifier">c</span><span class="plain">, &</span><span class="identifier">f</span><span class="plain">##</span><span class="identifier">_writer</span><span class="plain">);</span>
|
||||||
<span class="definitionkeyword">define</span> <span class="identifier">COMPILE_WRITER</span><span class="plain">(</span><span class="identifier">t</span><span class="plain">, </span><span class="identifier">f</span><span class="plain">)</span>
|
<span class="definitionkeyword">define</span> <span class="identifier">COMPILE_WRITER</span><span class="plain">(</span><span class="identifier">t</span><span class="plain">, </span><span class="identifier">f</span><span class="plain">)</span>
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="identifier">f</span><span class="plain">##</span><span class="identifier">_writer</span><span class="plain">(</span><span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">format</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">obj</span><span class="plain">) { </span><span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">SDL</span><span class="plain"> = </span><span class="identifier">DL</span><span class="plain">; </span><span class="identifier">DL</span><span class="plain"> = </span><span class="identifier">format</span><span class="plain">; </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">DL</span><span class="plain">) </span><span class="identifier">f</span><span class="plain">((</span><span class="identifier">t</span><span class="plain">) </span><span class="identifier">obj</span><span class="plain">); </span><span class="identifier">DL</span><span class="plain"> = </span><span class="identifier">SDL</span><span class="plain">; }</span>
|
<span class="reserved">void</span><span class="plain"> </span><span class="identifier">f</span><span class="plain">##</span><span class="identifier">_writer</span><span class="plain">(</span><span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">format</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">obj</span><span class="plain">) { </span><span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">SDL</span><span class="plain"> = </span><span class="identifier">DL</span><span class="plain">; </span><span class="identifier">DL</span><span class="plain"> = </span><span class="identifier">format</span><span class="plain">; </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">DL</span><span class="plain">) </span><span class="identifier">f</span><span class="plain">((</span><span class="identifier">t</span><span class="plain">) </span><span class="identifier">obj</span><span class="plain">); </span><span class="identifier">DL</span><span class="plain"> = </span><span class="identifier">SDL</span><span class="plain">; }</span>
|
||||||
|
@ -311,7 +305,8 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP6"></a><b>§6. </b></p>
|
<p class="inwebparagraph"><a id="SP6"></a><b>§6. </b>Like all modules, this one must define a <code class="display"><span class="extract">start</span></code> and <code class="display"><span class="extract">end</span></code> function:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
<pre class="display">
|
||||||
|
@ -321,12 +316,16 @@ foundation module does that automatically.)
|
||||||
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">6.5</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">6.5</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">6.6</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">6.6</span>><span class="character">;</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CoreModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
|
<span class="plain">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function CoreModule::start appears nowhere else.</p>
|
<p class="endnote">The function CoreModule::start appears nowhere else.</p>
|
||||||
|
|
||||||
|
<p class="endnote">The function CoreModule::end appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP6_1"></a><b>§6.1. </b>Not all of our memory will be claimed in the form of structures: now and then
|
<p class="inwebparagraph"><a id="SP6_1"></a><b>§6.1. </b>Not all of our memory will be claimed in the form of structures: now and then
|
||||||
we need to use the equivalent of traditional <code class="display"><span class="extract">malloc</span></code> and <code class="display"><span class="extract">calloc</span></code> routines.
|
we need to use the equivalent of traditional <code class="display"><span class="extract">malloc</span></code> and <code class="display"><span class="extract">calloc</span></code> routines.
|
||||||
</p>
|
</p>
|
||||||
|
@ -544,17 +543,232 @@ we need to use the equivalent of traditional <code class="display"><span class="
|
||||||
|
|
||||||
<p class="endnote">The function CoreModule::writer is used in <a href="#SP6_3">§6.3</a>.</p>
|
<p class="endnote">The function CoreModule::writer is used in <a href="#SP6_3">§6.3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP8"></a><b>§8. The end. </b></p>
|
<p class="inwebparagraph"><a id="SP8"></a><b>§8. </b>This module uses <code class="display"><span class="extract">syntax</span></code>, and adds the following annotations to the syntax
|
||||||
|
tree; though it's a little like itemising the baubles on a Christmas tree.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<pre class="definitions">
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">action_meaning_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">action_pattern</span></code>: meaning in parse tree when used as noun</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">aph_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">adjectival_phrase</span></code>: which adjective is asserted</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">category_of_I6_translation_ANNOT</span><span class="plain"> </span> <span class="comment">int: what sort of "translates into I6" sentence this is</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">clears_pronouns_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: this sentence erases the current value of "it"</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">colon_block_command_ANNOT</span><span class="plain"> </span> <span class="comment">int: this COMMAND uses the ":" not begin/end syntax</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">condition_tense_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">time_period</span></code>: for specification nodes</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_action_name_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">action_name</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_action_pattern_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">action_pattern</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_activity_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">activity</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_binary_predicate_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">binary_predicate</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_constant_phrase_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">constant_phrase</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_enumeration_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: which one from an enumerated kind</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_equation_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">equation</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_grammar_verb_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">grammar_verb</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_instance_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">instance</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_local_variable_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">local_variable</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_named_action_pattern_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">named_action_pattern</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_named_rulebook_outcome_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">named_rulebook_outcome</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_nonlocal_variable_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">nonlocal_variable</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_number_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: which integer this is</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_property_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">property</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_rule_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">rule</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_rulebook_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">rulebook</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_scene_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">scene</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_table_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">table</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_table_column_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">table_column</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_text_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">text_stream</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_use_option_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">use_option</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">constant_verb_form_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">verb_form</span></code>: for constant values</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">control_structure_used_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">control_structure_phrase</span></code>: for CODE BLOCK nodes only</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">converted_SN_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: marking descriptions</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">creation_proposition_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">pcalc_prop</span></code>: proposition which newly created value satisfies</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">creation_site_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: whether an instance was created from this node</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">defn_language_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">inform_language</span></code>: what language this definition is in</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">end_control_structure_used_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">control_structure_phrase</span></code>: for CODE BLOCK nodes only</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">epistemological_status_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: a bitmap of results from checking an ambiguous reading</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">evaluation_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">parse_node</span></code>: result of evaluating the text</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">examine_for_ofs_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: mark this as a possible site for removing "of" tree breaks</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">explicit_iname_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">inter_name</span></code>: is this value explicitly an iname?</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">explicit_literal_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: my value is an explicit integer or text</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">explicit_vh_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">value_holster</span></code>: used for compiling I6-level properties</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">from_text_substitution_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: whether this is an implicit say invocation</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">grammar_token_code_ANNOT</span><span class="plain"> </span> <span class="comment">int: used to identify grammar tokens</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">grammar_token_literal_ANNOT</span><span class="plain"> </span> <span class="comment">int: for grammar tokens which are literal words</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">grammar_token_relation_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">binary_predicate</span></code>: for relation tokens</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">grammar_value_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">parse_node</span></code>: used as a marker when evaluating Understand grammar</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">imperative_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: marking definitions of imperative verbs</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">implicit_in_creation_of_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">inference_subject</span></code>: for assemblies</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">implicitness_count_ANNOT</span><span class="plain"> </span> <span class="comment">int: keeping track of recursive assemblies</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">indentation_level_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: for routines written with Pythonesque indentation</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">interpretation_of_subject_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">inference_subject</span></code>: subject, during passes</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">is_phrase_option_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: this unparsed text is a phrase option</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">kind_of_new_variable_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">kind</span></code>: what if anything is returned</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">kind_of_value_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">kind</span></code>: for specification nodes</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">kind_required_by_context_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">kind</span></code>: what if anything is expected here</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">kind_resulting_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">kind</span></code>: what if anything is returned</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">kind_variable_declarations_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">kind_variable_declaration</span></code>: and of these</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">listing_sense_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: are we listing a rule into something, or out of it?</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">log_inclusion_sense_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: should we include or exclude this from the debugging log?</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">lpe_options_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: options set for a literal pattern part</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">modal_verb_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">verb_conjugation</span></code>: relevant only for that: e.g., "might"</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">module_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">compilation_module</span></code>: set only for headings, routines and sentences</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">multiplicity_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: e.g., 5 for "five gold rings"</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">negated_boolean_ANNOT</span><span class="plain"> </span> <span class="comment">int: set if adjective/verb meant negatively</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">new_relation_here_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">binary_predicate</span></code>: new relation as subject of "relates" sentence</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">nothing_object_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: this represents <code class="display"><span class="extract">nothing</span></code> at run-time</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">nowhere_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: used by the spatial plugin to show this represents "nowhere"</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">phrase_invoked_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">phrase</span></code>: the phrase believed to be invoked...</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">phrase_option_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: 2^i where i is the option number, 0<= i<16</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">phrase_options_invoked_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">invocation_options</span></code>: details of any options used</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">property_name_used_as_noun_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: in ambiguous cases such as "open"</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">proposition_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">pcalc_prop</span></code>: for specification nodes</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">prep_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">preposition_identity</span></code>: for e.g. "is on"</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">quant_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">quantifier</span></code>: for quantified excerpts like "three baskets"</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">quantification_parameter_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: e.g., 3 for "three baskets"</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">record_as_self_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: record recipient as <code class="display"><span class="extract">self</span></code> when writing this</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">relationship_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">binary_predicate</span></code>: for RELATIONSHIP nodes</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">resolved_ANNOT</span><span class="plain"> </span> <span class="comment">int: temp storage when resolving NPs</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">response_code_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: for responses only</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">results_from_splitting_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: node in a routine's parse tree from comma block notation</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">row_amendable_ANNOT</span><span class="plain"> </span> <span class="comment">int: a candidate row for a table amendment</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">save_self_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: this invocation must save and preserve <code class="display"><span class="extract">self</span></code> at run-time</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">say_adjective_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">adjectival_phrase</span></code>: ...or the adjective to be agreed with by "say"</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">say_verb_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">verb_conjugation</span></code>: ...or the verb to be conjugated by "say"</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">say_verb_negated_ANNOT</span><span class="plain"> </span> <span class="comment">relevant only for that</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">self_object_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: this represents <code class="display"><span class="extract">self</span></code> at run-time</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">slash_class_ANNOT</span><span class="plain"> </span> <span class="comment">int: used when partitioning grammar tokens</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">slash_dash_dash_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: used when partitioning grammar tokens</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">ssp_closing_segment_wn_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: identifier for the last of these, or <code class="display"><span class="extract">-1</span></code></span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">ssp_segment_count_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: number of subsequent complex-say phrases in stream</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">subject_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">inference_subject</span></code>: what this node describes</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">subject_term_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">pcalc_term</span></code>: what the subject of the subtree was</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">suppress_newlines_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: whether the next say term runs on</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">table_cell_unspecified_ANNOT</span><span class="plain"> </span> <span class="comment">int: used to mark table entries as unset</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">text_unescaped_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: flag used only for literal texts</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">token_as_parsed_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">parse_node</span></code>: what if anything is returned</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">token_check_to_do_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">parse_node</span></code>: what if anything is returned</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">token_to_be_parsed_against_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">parse_node</span></code>: what if anything is returned</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">turned_already_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: aliasing like "player" to "yourself" performed already</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">unproven_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: this invocation needs run-time typechecking</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">verb_id_ANNOT</span><span class="plain"> </span> <span class="comment">int: identifying what kind of VERB node</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">verb_problem_issued_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: has a problem message about the primary verb been issued already?</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">vu_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">verb_usage</span></code>: for e.g. "does not carry"</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">you_can_ignore_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: for assertions now drained of meaning</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
<pre class="display">
|
<pre class="display">
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CoreModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">aph</span><span class="plain">, </span><span class="identifier">adjectival_phrase</span><span class="plain">)</span>
|
||||||
<span class="plain">}</span>
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">condition_tense</span><span class="plain">, </span><span class="identifier">time_period</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_activity</span><span class="plain">,</span><span class="reserved"> activity</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_binary_predicate</span><span class="plain">, </span><span class="reserved">binary_predicate</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_constant_phrase</span><span class="plain">, </span><span class="reserved">constant_phrase</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_equation</span><span class="plain">, </span><span class="reserved">equation</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_instance</span><span class="plain">, </span><span class="reserved">instance</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_local_variable</span><span class="plain">, </span><span class="reserved">local_variable</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_named_rulebook_outcome</span><span class="plain">, </span><span class="reserved">named_rulebook_outcome</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_nonlocal_variable</span><span class="plain">, </span><span class="reserved">nonlocal_variable</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_property</span><span class="plain">, </span><span class="reserved">property</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_rule</span><span class="plain">, </span><span class="reserved">rule</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_rulebook</span><span class="plain">, </span><span class="reserved">rulebook</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_table_column</span><span class="plain">, </span><span class="reserved">table_column</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_table</span><span class="plain">, </span><span class="reserved">table</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_text</span><span class="plain">, </span><span class="identifier">text_stream</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_use_option</span><span class="plain">, </span><span class="reserved">use_option</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_verb_form</span><span class="plain">, </span><span class="identifier">verb_form</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">control_structure_used</span><span class="plain">, </span><span class="identifier">control_structure_phrase</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">creation_proposition</span><span class="plain">, </span><span class="reserved">pcalc_prop</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">defn_language</span><span class="plain">, </span><span class="identifier">inform_language</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">end_control_structure_used</span><span class="plain">, </span><span class="identifier">control_structure_phrase</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">evaluation</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">explicit_vh</span><span class="plain">, </span><span class="identifier">value_holster</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">grammar_token_relation</span><span class="plain">, </span><span class="reserved">binary_predicate</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">grammar_value</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">implicit_in_creation_of</span><span class="plain">, </span><span class="reserved">inference_subject</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">interpretation_of_subject</span><span class="plain">, </span><span class="reserved">inference_subject</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_of_new_variable</span><span class="plain">, </span><span class="identifier">kind</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_of_value</span><span class="plain">, </span><span class="identifier">kind</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_required_by_context</span><span class="plain">, </span><span class="identifier">kind</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_resulting</span><span class="plain">, </span><span class="identifier">kind</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_variable_declarations</span><span class="plain">, </span><span class="identifier">kind_variable_declaration</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">explicit_iname</span><span class="plain">, </span><span class="identifier">inter_name</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">modal_verb</span><span class="plain">, </span><span class="identifier">verb_conjugation</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">module</span><span class="plain">, </span><span class="identifier">compilation_module</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">new_relation_here</span><span class="plain">, </span><span class="reserved">binary_predicate</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">phrase_invoked</span><span class="plain">, </span><span class="reserved">phrase</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">phrase_options_invoked</span><span class="plain">, </span><span class="reserved">invocation_options</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">proposition</span><span class="plain">, </span><span class="reserved">pcalc_prop</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">prep</span><span class="plain">, </span><span class="identifier">preposition_identity</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">quant</span><span class="plain">, </span><span class="identifier">quantifier</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">relationship</span><span class="plain">, </span><span class="reserved">binary_predicate</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">say_adjective</span><span class="plain">, </span><span class="identifier">adjectival_phrase</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">say_verb</span><span class="plain">, </span><span class="identifier">verb_conjugation</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">subject_term</span><span class="plain">, </span><span class="reserved">pcalc_term</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">subject</span><span class="plain">, </span><span class="reserved">inference_subject</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">token_as_parsed</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">token_check_to_do</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">token_to_be_parsed_against</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">vu</span><span class="plain">, </span><span class="identifier">verb_usage</span><span class="plain">)</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function CoreModule::end appears nowhere else.</p>
|
<p class="inwebparagraph"><a id="SP9"></a><b>§9. </b>So we itemise the pointer-valued annotations below, and the macro expands
|
||||||
|
to provide their get and set functions:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<pre class="display">
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">aph</span><span class="plain">, </span><span class="identifier">adjectival_phrase</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">condition_tense</span><span class="plain">, </span><span class="identifier">time_period</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_activity</span><span class="plain">,</span><span class="reserved"> activity</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_binary_predicate</span><span class="plain">, </span><span class="reserved">binary_predicate</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_constant_phrase</span><span class="plain">, </span><span class="reserved">constant_phrase</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_equation</span><span class="plain">, </span><span class="reserved">equation</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_instance</span><span class="plain">, </span><span class="reserved">instance</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_local_variable</span><span class="plain">, </span><span class="reserved">local_variable</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_named_rulebook_outcome</span><span class="plain">, </span><span class="reserved">named_rulebook_outcome</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_nonlocal_variable</span><span class="plain">, </span><span class="reserved">nonlocal_variable</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_property</span><span class="plain">, </span><span class="reserved">property</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_rule</span><span class="plain">, </span><span class="reserved">rule</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_rulebook</span><span class="plain">, </span><span class="reserved">rulebook</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_table_column</span><span class="plain">, </span><span class="reserved">table_column</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_table</span><span class="plain">, </span><span class="reserved">table</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_text</span><span class="plain">, </span><span class="identifier">text_stream</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_use_option</span><span class="plain">, </span><span class="reserved">use_option</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_verb_form</span><span class="plain">, </span><span class="identifier">verb_form</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">control_structure_used</span><span class="plain">, </span><span class="identifier">control_structure_phrase</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">creation_proposition</span><span class="plain">, </span><span class="reserved">pcalc_prop</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">defn_language</span><span class="plain">, </span><span class="identifier">inform_language</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">end_control_structure_used</span><span class="plain">, </span><span class="identifier">control_structure_phrase</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">evaluation</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">explicit_vh</span><span class="plain">, </span><span class="identifier">value_holster</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">grammar_token_relation</span><span class="plain">, </span><span class="reserved">binary_predicate</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">grammar_value</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">implicit_in_creation_of</span><span class="plain">, </span><span class="reserved">inference_subject</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">interpretation_of_subject</span><span class="plain">, </span><span class="reserved">inference_subject</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_of_new_variable</span><span class="plain">, </span><span class="identifier">kind</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_of_value</span><span class="plain">, </span><span class="identifier">kind</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_required_by_context</span><span class="plain">, </span><span class="identifier">kind</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_resulting</span><span class="plain">, </span><span class="identifier">kind</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_variable_declarations</span><span class="plain">, </span><span class="identifier">kind_variable_declaration</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">modal_verb</span><span class="plain">, </span><span class="identifier">verb_conjugation</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">new_relation_here</span><span class="plain">, </span><span class="reserved">binary_predicate</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">phrase_invoked</span><span class="plain">, </span><span class="reserved">phrase</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">phrase_options_invoked</span><span class="plain">, </span><span class="reserved">invocation_options</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">proposition</span><span class="plain">, </span><span class="reserved">pcalc_prop</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">prep</span><span class="plain">, </span><span class="identifier">preposition_identity</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">quant</span><span class="plain">, </span><span class="identifier">quantifier</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">relationship</span><span class="plain">, </span><span class="reserved">binary_predicate</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">say_adjective</span><span class="plain">, </span><span class="identifier">adjectival_phrase</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">say_verb</span><span class="plain">, </span><span class="identifier">verb_conjugation</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">subject_term</span><span class="plain">, </span><span class="reserved">pcalc_term</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">subject</span><span class="plain">, </span><span class="reserved">inference_subject</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">token_as_parsed</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">token_check_to_do</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">token_to_be_parsed_against</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">vu</span><span class="plain">, </span><span class="identifier">verb_usage</span><span class="plain">)</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<hr class="tocbar">
|
<hr class="tocbar">
|
||||||
<ul class="toc"><li><i>(This section begins Chapter 1: Configuration and Control.)</i></li><li><a href="1-mr.html">Continue with 'Main Routine'</a></li></ul><hr class="tocbar">
|
<ul class="toc"><li><i>(This section begins Chapter 1: Configuration and Control.)</i></li><li><a href="1-mr.html">Continue with 'Main Routine'</a></li></ul><hr class="tocbar">
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -453,7 +453,7 @@ subsequent ones.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function Calculus::Propositions::copy is used in 7/ptu (<a href="7-ptu.html#SP4">§4</a>), 9/rpt (<a href="9-rpt.html#SP2">§2</a>), 11/sc (<a href="11-sc.html#SP3">§3</a>, <a href="11-sc.html#SP3_4">§3.4</a>), 12/dtd (<a href="12-dtd.html#SP7">§7</a>), 12/cdp (<a href="12-cdp.html#SP2_1">§2.1</a>, <a href="12-cdp.html#SP2_1_6">§2.1.6</a>), 14/ds (<a href="14-ds.html#SP6">§6</a>, <a href="14-ds.html#SP9">§9</a>).</p>
|
<p class="endnote">The function Calculus::Propositions::copy is used in 7/ptu (<a href="7-ptu.html#SP2">§2</a>), 9/rpt (<a href="9-rpt.html#SP2">§2</a>), 11/sc (<a href="11-sc.html#SP3">§3</a>, <a href="11-sc.html#SP3_4">§3.4</a>), 12/dtd (<a href="12-dtd.html#SP7">§7</a>), 12/cdp (<a href="12-cdp.html#SP2_1">§2.1</a>, <a href="12-cdp.html#SP2_1_6">§2.1.6</a>), 14/ds (<a href="14-ds.html#SP6">§6</a>, <a href="14-ds.html#SP9">§9</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP15"></a><b>§15. </b>Now to concatenate propositions. If E and T are both syntactically valid,
|
<p class="inwebparagraph"><a id="SP15"></a><b>§15. </b>Now to concatenate propositions. If E and T are both syntactically valid,
|
||||||
the result will be, too; but the same is not true of well-formedness, so we
|
the result will be, too; but the same is not true of well-formedness, so we
|
||||||
|
|
|
@ -363,7 +363,7 @@ created condition:
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function Conditions::log is used in 7/ptu (<a href="7-ptu.html#SP17_1">§17.1</a>).</p>
|
<p class="endnote">The function Conditions::log is used in 7/ptu (<a href="7-ptu.html#SP14_1">§14.1</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP14"></a><b>§14. Specificity. </b>We will need a way of determining which of two conditions is more complex,
|
<p class="inwebparagraph"><a id="SP14"></a><b>§14. Specificity. </b>We will need a way of determining which of two conditions is more complex,
|
||||||
so that action-based rules with "when..." clauses tacked on can be sorted:
|
so that action-based rules with "when..." clauses tacked on can be sorted:
|
||||||
|
|
|
@ -342,7 +342,7 @@ actions and the like:
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function Lvalues::log is used in 7/ptu (<a href="7-ptu.html#SP17_1">§17.1</a>).</p>
|
<p class="endnote">The function Lvalues::log is used in 7/ptu (<a href="7-ptu.html#SP14_1">§14.1</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP12"></a><b>§12. Compilation. </b></p>
|
<p class="inwebparagraph"><a id="SP12"></a><b>§12. Compilation. </b></p>
|
||||||
|
|
||||||
|
|
|
@ -774,7 +774,7 @@ doesn't need to be especially rapid.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function Rvalues::log is used in 7/ptu (<a href="7-ptu.html#SP17_1">§17.1</a>).</p>
|
<p class="endnote">The function Rvalues::log is used in 7/ptu (<a href="7-ptu.html#SP14_1">§14.1</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP23"></a><b>§23. Compilation. </b>First: clearly everything in this family evaluates, but what kind does the
|
<p class="inwebparagraph"><a id="SP23"></a><b>§23. Compilation. </b>First: clearly everything in this family evaluates, but what kind does the
|
||||||
result have?
|
result have?
|
||||||
|
|
|
@ -1604,7 +1604,7 @@ usages to the debugging log.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function NewVerbs::log is used in 7/ptu (<a href="7-ptu.html#SP17_1">§17.1</a>).</p>
|
<p class="endnote">The function NewVerbs::log is used in 7/ptu (<a href="7-ptu.html#SP14_1">§14.1</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function NewVerbs::log_all is used in 1/mr (<a href="1-mr.html#SP1_5">§1.5</a>).</p>
|
<p class="endnote">The function NewVerbs::log_all is used in 1/mr (<a href="1-mr.html#SP1_5">§1.5</a>).</p>
|
||||||
|
|
||||||
|
|
|
@ -59,133 +59,11 @@
|
||||||
<!--Weave of '7/ptu' generated by 7-->
|
<!--Weave of '7/ptu' generated by 7-->
|
||||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">core</a></li><li><a href="index.html#7">Chapter 7: Sentences</a></li><li><b>Parse Tree Usage</b></li></ul><p class="purpose">Shims for the parse tree.</p>
|
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">core</a></li><li><a href="index.html#7">Chapter 7: Sentences</a></li><li><b>Parse Tree Usage</b></li></ul><p class="purpose">Shims for the parse tree.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="#SP1">§1. Definitions</a></li><li><a href="#SP16">§16. The assertion-maker's invariant</a></li></ul><hr class="tocbar">
|
<ul class="toc"><li><a href="#SP1">§1. Definitions</a></li><li><a href="#SP13">§13. The assertion-maker's invariant</a></li></ul><hr class="tocbar">
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Definitions. </b></p>
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Definitions. </b></p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b>Access routines will be needed for some of these, and the following
|
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b></p>
|
||||||
constructs them:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">aph</span><span class="plain">, </span><span class="identifier">adjectival_phrase</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">condition_tense</span><span class="plain">, </span><span class="identifier">time_period</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_activity</span><span class="plain">,</span><span class="reserved"> activity</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_binary_predicate</span><span class="plain">, </span><span class="reserved">binary_predicate</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_constant_phrase</span><span class="plain">, </span><span class="reserved">constant_phrase</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_equation</span><span class="plain">, </span><span class="reserved">equation</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_instance</span><span class="plain">, </span><span class="reserved">instance</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_local_variable</span><span class="plain">, </span><span class="reserved">local_variable</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_named_rulebook_outcome</span><span class="plain">, </span><span class="reserved">named_rulebook_outcome</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_nonlocal_variable</span><span class="plain">, </span><span class="reserved">nonlocal_variable</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_property</span><span class="plain">, </span><span class="reserved">property</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_rule</span><span class="plain">, </span><span class="reserved">rule</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_rulebook</span><span class="plain">, </span><span class="reserved">rulebook</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_table_column</span><span class="plain">, </span><span class="reserved">table_column</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_table</span><span class="plain">, </span><span class="reserved">table</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_text</span><span class="plain">, </span><span class="identifier">text_stream</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_use_option</span><span class="plain">, </span><span class="reserved">use_option</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_verb_form</span><span class="plain">, </span><span class="identifier">verb_form</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">control_structure_used</span><span class="plain">, </span><span class="identifier">control_structure_phrase</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">creation_proposition</span><span class="plain">, </span><span class="reserved">pcalc_prop</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">defn_language</span><span class="plain">, </span><span class="identifier">inform_language</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">end_control_structure_used</span><span class="plain">, </span><span class="identifier">control_structure_phrase</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">evaluation</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">explicit_vh</span><span class="plain">, </span><span class="identifier">value_holster</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">grammar_token_relation</span><span class="plain">, </span><span class="reserved">binary_predicate</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">grammar_value</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">implicit_in_creation_of</span><span class="plain">, </span><span class="reserved">inference_subject</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">interpretation_of_subject</span><span class="plain">, </span><span class="reserved">inference_subject</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_of_new_variable</span><span class="plain">, </span><span class="identifier">kind</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_of_value</span><span class="plain">, </span><span class="identifier">kind</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_required_by_context</span><span class="plain">, </span><span class="identifier">kind</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_resulting</span><span class="plain">, </span><span class="identifier">kind</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_variable_declarations</span><span class="plain">, </span><span class="identifier">kind_variable_declaration</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">explicit_iname</span><span class="plain">, </span><span class="identifier">inter_name</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">modal_verb</span><span class="plain">, </span><span class="identifier">verb_conjugation</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">module</span><span class="plain">, </span><span class="identifier">compilation_module</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">new_relation_here</span><span class="plain">, </span><span class="reserved">binary_predicate</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">phrase_invoked</span><span class="plain">, </span><span class="reserved">phrase</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">phrase_options_invoked</span><span class="plain">, </span><span class="reserved">invocation_options</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">proposition</span><span class="plain">, </span><span class="reserved">pcalc_prop</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">prep</span><span class="plain">, </span><span class="identifier">preposition_identity</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">quant</span><span class="plain">, </span><span class="identifier">quantifier</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">relationship</span><span class="plain">, </span><span class="reserved">binary_predicate</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">say_adjective</span><span class="plain">, </span><span class="identifier">adjectival_phrase</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">say_verb</span><span class="plain">, </span><span class="identifier">verb_conjugation</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">subject_term</span><span class="plain">, </span><span class="reserved">pcalc_term</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">subject</span><span class="plain">, </span><span class="reserved">inference_subject</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">token_as_parsed</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">token_check_to_do</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">token_to_be_parsed_against</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">vu</span><span class="plain">, </span><span class="identifier">verb_usage</span><span class="plain">)</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>So we itemise the pointer-valued annotations below, and the macro expands
|
|
||||||
to provide their get and set functions:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">aph</span><span class="plain">, </span><span class="identifier">adjectival_phrase</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">condition_tense</span><span class="plain">, </span><span class="identifier">time_period</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_activity</span><span class="plain">,</span><span class="reserved"> activity</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_binary_predicate</span><span class="plain">, </span><span class="reserved">binary_predicate</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_constant_phrase</span><span class="plain">, </span><span class="reserved">constant_phrase</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_equation</span><span class="plain">, </span><span class="reserved">equation</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_instance</span><span class="plain">, </span><span class="reserved">instance</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_local_variable</span><span class="plain">, </span><span class="reserved">local_variable</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_named_rulebook_outcome</span><span class="plain">, </span><span class="reserved">named_rulebook_outcome</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_nonlocal_variable</span><span class="plain">, </span><span class="reserved">nonlocal_variable</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_property</span><span class="plain">, </span><span class="reserved">property</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_rule</span><span class="plain">, </span><span class="reserved">rule</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_rulebook</span><span class="plain">, </span><span class="reserved">rulebook</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_table_column</span><span class="plain">, </span><span class="reserved">table_column</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_table</span><span class="plain">, </span><span class="reserved">table</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_text</span><span class="plain">, </span><span class="identifier">text_stream</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_use_option</span><span class="plain">, </span><span class="reserved">use_option</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_verb_form</span><span class="plain">, </span><span class="identifier">verb_form</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">control_structure_used</span><span class="plain">, </span><span class="identifier">control_structure_phrase</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">creation_proposition</span><span class="plain">, </span><span class="reserved">pcalc_prop</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">defn_language</span><span class="plain">, </span><span class="identifier">inform_language</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">end_control_structure_used</span><span class="plain">, </span><span class="identifier">control_structure_phrase</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">evaluation</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">explicit_vh</span><span class="plain">, </span><span class="identifier">value_holster</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">grammar_token_relation</span><span class="plain">, </span><span class="reserved">binary_predicate</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">grammar_value</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">implicit_in_creation_of</span><span class="plain">, </span><span class="reserved">inference_subject</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">interpretation_of_subject</span><span class="plain">, </span><span class="reserved">inference_subject</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_of_new_variable</span><span class="plain">, </span><span class="identifier">kind</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_of_value</span><span class="plain">, </span><span class="identifier">kind</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_required_by_context</span><span class="plain">, </span><span class="identifier">kind</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_resulting</span><span class="plain">, </span><span class="identifier">kind</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">kind_variable_declarations</span><span class="plain">, </span><span class="identifier">kind_variable_declaration</span><span class="plain">)</span>
|
|
||||||
<span class="comment">see codegen module for (explicit_iname, inter_name)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">modal_verb</span><span class="plain">, </span><span class="identifier">verb_conjugation</span><span class="plain">)</span>
|
|
||||||
<span class="comment">see codegen module for (module, compilation_module)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">new_relation_here</span><span class="plain">, </span><span class="reserved">binary_predicate</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">phrase_invoked</span><span class="plain">, </span><span class="reserved">phrase</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">phrase_options_invoked</span><span class="plain">, </span><span class="reserved">invocation_options</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">proposition</span><span class="plain">, </span><span class="reserved">pcalc_prop</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">prep</span><span class="plain">, </span><span class="identifier">preposition_identity</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">quant</span><span class="plain">, </span><span class="identifier">quantifier</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">relationship</span><span class="plain">, </span><span class="reserved">binary_predicate</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">say_adjective</span><span class="plain">, </span><span class="identifier">adjectival_phrase</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">say_verb</span><span class="plain">, </span><span class="identifier">verb_conjugation</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">subject_term</span><span class="plain">, </span><span class="reserved">pcalc_term</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">subject</span><span class="plain">, </span><span class="reserved">inference_subject</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">token_as_parsed</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">token_check_to_do</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">token_to_be_parsed_against</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">vu</span><span class="plain">, </span><span class="identifier">verb_usage</span><span class="plain">)</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. </b></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -207,7 +85,7 @@ to provide their get and set functions:
|
||||||
|
|
||||||
<p class="endnote">The function ParseTreeUsage::copy_annotations appears nowhere else.</p>
|
<p class="endnote">The function ParseTreeUsage::copy_annotations appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP5"></a><b>§5. </b></p>
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b></p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -233,7 +111,7 @@ to provide their get and set functions:
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">LVALUE_LOCAL_CONTEXT_NT</span><span class="plain"> </span> <span class="comment">Argument which names a local</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">LVALUE_LOCAL_CONTEXT_NT</span><span class="plain"> </span> <span class="comment">Argument which names a local</span>
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">CONDITION_CONTEXT_NT</span><span class="plain"> </span> <span class="comment">Used for "now" conditions</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">CONDITION_CONTEXT_NT</span><span class="plain"> </span> <span class="comment">Used for "now" conditions</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP6"></a><b>§6. </b>Next we enumerate the specification node types, beginning with the one which
|
<p class="inwebparagraph"><a id="SP4"></a><b>§4. </b>Next we enumerate the specification node types, beginning with the one which
|
||||||
signifies that text has no known meaning — either because we tried to make
|
signifies that text has no known meaning — either because we tried to make
|
||||||
sense of it and failed, or because we are choosing not to parse it until
|
sense of it and failed, or because we are choosing not to parse it until
|
||||||
later on, and are representing it as unknown until then.
|
later on, and are representing it as unknown until then.
|
||||||
|
@ -243,7 +121,7 @@ later on, and are representing it as unknown until then.
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">UNKNOWN_NT</span><span class="plain"> </span> <span class="comment">"arfle barfle gloop"</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">UNKNOWN_NT</span><span class="plain"> </span> <span class="comment">"arfle barfle gloop"</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP7"></a><b>§7. </b>The next specification nodes are the rvalues. These express I6 values —
|
<p class="inwebparagraph"><a id="SP5"></a><b>§5. </b>The next specification nodes are the rvalues. These express I6 values —
|
||||||
numbers, objects, text and so on — but cannot be assigned to, so that in an
|
numbers, objects, text and so on — but cannot be assigned to, so that in an
|
||||||
assignment of the form "change L to R" they can be used only as R, not L. This
|
assignment of the form "change L to R" they can be used only as R, not L. This
|
||||||
is not the same thing as a constant: for instance, "location of the player"
|
is not the same thing as a constant: for instance, "location of the player"
|
||||||
|
@ -256,7 +134,7 @@ assignment.
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">CONSTANT_NT</span><span class="plain"> </span> <span class="comment">"7", "the can't lock a locked door rule", etc.</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">CONSTANT_NT</span><span class="plain"> </span> <span class="comment">"7", "the can't lock a locked door rule", etc.</span>
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">PHRASE_TO_DECIDE_VALUE_NT</span><span class="plain"> </span> <span class="comment">"holder of the black box"</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">PHRASE_TO_DECIDE_VALUE_NT</span><span class="plain"> </span> <span class="comment">"holder of the black box"</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP8"></a><b>§8. </b>Lvalue nodes represent stored I6 data at run-time, which means that they can
|
<p class="inwebparagraph"><a id="SP6"></a><b>§6. </b>Lvalue nodes represent stored I6 data at run-time, which means that they can
|
||||||
be assigned to. (The traditional terms "lvalue" and "rvalue" refer to the left
|
be assigned to. (The traditional terms "lvalue" and "rvalue" refer to the left
|
||||||
and right hand side of assignment statements written <code class="display"><span class="extract">A = B</span></code>.) For instance, a
|
and right hand side of assignment statements written <code class="display"><span class="extract">A = B</span></code>.) For instance, a
|
||||||
table entry qualifies as an lvalue because it can be both read and changed. To
|
table entry qualifies as an lvalue because it can be both read and changed. To
|
||||||
|
@ -274,7 +152,7 @@ indicating an owner) is a mere rvalue.
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">TABLE_ENTRY_NT</span><span class="plain"> </span> <span class="comment">"tonnage in row X of the Table of Corvettes"</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">TABLE_ENTRY_NT</span><span class="plain"> </span> <span class="comment">"tonnage in row X of the Table of Corvettes"</span>
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">LIST_ENTRY_NT</span><span class="plain"> </span> <span class="comment">"item 4 in L"</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">LIST_ENTRY_NT</span><span class="plain"> </span> <span class="comment">"item 4 in L"</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP9"></a><b>§9. </b>Condition nodes represent atomic conditions, and also Boolean operations on
|
<p class="inwebparagraph"><a id="SP7"></a><b>§7. </b>Condition nodes represent atomic conditions, and also Boolean operations on
|
||||||
them. It's convenient to represent these operations as nodes in their own right
|
them. It's convenient to represent these operations as nodes in their own right
|
||||||
rather than as (for example) phrases: this reduces parsing ambiguities, but
|
rather than as (for example) phrases: this reduces parsing ambiguities, but
|
||||||
also makes it easier for us to manipulate the results.
|
also makes it easier for us to manipulate the results.
|
||||||
|
@ -290,118 +168,7 @@ also makes it easier for us to manipulate the results.
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">TEST_PHRASE_OPTION_NT</span><span class="plain"> </span> <span class="comment">"giving full details", say</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">TEST_PHRASE_OPTION_NT</span><span class="plain"> </span> <span class="comment">"giving full details", say</span>
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">TEST_VALUE_NT</span><span class="plain"> </span> <span class="comment">when a value is used as a condition</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">TEST_VALUE_NT</span><span class="plain"> </span> <span class="comment">when a value is used as a condition</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP10"></a><b>§10. </b>This is a little like itemising the baubles on a Christmas tree, but here
|
<p class="inwebparagraph"><a id="SP8"></a><b>§8. </b></p>
|
||||||
goes. The annotations used are identified by nonzero ID numbers, as follows:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">action_meaning_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">action_pattern</span></code>: meaning in parse tree when used as noun</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">aph_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">adjectival_phrase</span></code>: which adjective is asserted</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">category_of_I6_translation_ANNOT</span><span class="plain"> </span> <span class="comment">int: what sort of "translates into I6" sentence this is</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">clears_pronouns_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: this sentence erases the current value of "it"</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">colon_block_command_ANNOT</span><span class="plain"> </span> <span class="comment">int: this COMMAND uses the ":" not begin/end syntax</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">condition_tense_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">time_period</span></code>: for specification nodes</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_action_name_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">action_name</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_action_pattern_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">action_pattern</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_activity_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">activity</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_binary_predicate_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">binary_predicate</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_constant_phrase_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">constant_phrase</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_enumeration_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: which one from an enumerated kind</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_equation_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">equation</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_grammar_verb_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">grammar_verb</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_instance_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">instance</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_local_variable_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">local_variable</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_named_action_pattern_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">named_action_pattern</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_named_rulebook_outcome_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">named_rulebook_outcome</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_nonlocal_variable_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">nonlocal_variable</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_number_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: which integer this is</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_property_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">property</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_rule_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">rule</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_rulebook_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">rulebook</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_scene_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">scene</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_table_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">table</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_table_column_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">table_column</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_text_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">text_stream</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_use_option_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">use_option</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">constant_verb_form_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">verb_form</span></code>: for constant values</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">control_structure_used_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">control_structure_phrase</span></code>: for CODE BLOCK nodes only</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">converted_SN_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: marking descriptions</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">creation_proposition_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">pcalc_prop</span></code>: proposition which newly created value satisfies</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">creation_site_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: whether an instance was created from this node</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">defn_language_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">inform_language</span></code>: what language this definition is in</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">end_control_structure_used_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">control_structure_phrase</span></code>: for CODE BLOCK nodes only</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">epistemological_status_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: a bitmap of results from checking an ambiguous reading</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">evaluation_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">parse_node</span></code>: result of evaluating the text</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">examine_for_ofs_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: mark this as a possible site for removing "of" tree breaks</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">explicit_iname_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">inter_name</span></code>: is this value explicitly an iname?</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">explicit_literal_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: my value is an explicit integer or text</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">explicit_vh_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">value_holster</span></code>: used for compiling I6-level properties</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">from_text_substitution_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: whether this is an implicit say invocation</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">grammar_token_code_ANNOT</span><span class="plain"> </span> <span class="comment">int: used to identify grammar tokens</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">grammar_token_literal_ANNOT</span><span class="plain"> </span> <span class="comment">int: for grammar tokens which are literal words</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">grammar_token_relation_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">binary_predicate</span></code>: for relation tokens</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">grammar_value_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">parse_node</span></code>: used as a marker when evaluating Understand grammar</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">imperative_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: marking definitions of imperative verbs</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">implicit_in_creation_of_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">inference_subject</span></code>: for assemblies</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">implicitness_count_ANNOT</span><span class="plain"> </span> <span class="comment">int: keeping track of recursive assemblies</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">indentation_level_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: for routines written with Pythonesque indentation</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">interpretation_of_subject_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">inference_subject</span></code>: subject, during passes</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">is_phrase_option_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: this unparsed text is a phrase option</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">kind_of_new_variable_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">kind</span></code>: what if anything is returned</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">kind_of_value_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">kind</span></code>: for specification nodes</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">kind_required_by_context_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">kind</span></code>: what if anything is expected here</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">kind_resulting_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">kind</span></code>: what if anything is returned</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">kind_variable_declarations_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">kind_variable_declaration</span></code>: and of these</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">listing_sense_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: are we listing a rule into something, or out of it?</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">log_inclusion_sense_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: should we include or exclude this from the debugging log?</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">lpe_options_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: options set for a literal pattern part</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">modal_verb_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">verb_conjugation</span></code>: relevant only for that: e.g., "might"</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">module_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">compilation_module</span></code>: set only for headings, routines and sentences</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">multiplicity_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: e.g., 5 for "five gold rings"</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">negated_boolean_ANNOT</span><span class="plain"> </span> <span class="comment">int: set if adjective/verb meant negatively</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">new_relation_here_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">binary_predicate</span></code>: new relation as subject of "relates" sentence</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">nothing_object_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: this represents <code class="display"><span class="extract">nothing</span></code> at run-time</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">nowhere_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: used by the spatial plugin to show this represents "nowhere"</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">phrase_invoked_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">phrase</span></code>: the phrase believed to be invoked...</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">phrase_option_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: 2^i where i is the option number, 0<= i<16</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">phrase_options_invoked_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">invocation_options</span></code>: details of any options used</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">property_name_used_as_noun_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: in ambiguous cases such as "open"</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">proposition_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">pcalc_prop</span></code>: for specification nodes</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">prep_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">preposition_identity</span></code>: for e.g. "is on"</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">quant_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">quantifier</span></code>: for quantified excerpts like "three baskets"</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">quantification_parameter_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: e.g., 3 for "three baskets"</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">record_as_self_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: record recipient as <code class="display"><span class="extract">self</span></code> when writing this</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">relationship_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">binary_predicate</span></code>: for RELATIONSHIP nodes</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">resolved_ANNOT</span><span class="plain"> </span> <span class="comment">int: temp storage when resolving NPs</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">response_code_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: for responses only</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">results_from_splitting_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: node in a routine's parse tree from comma block notation</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">row_amendable_ANNOT</span><span class="plain"> </span> <span class="comment">int: a candidate row for a table amendment</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">save_self_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: this invocation must save and preserve <code class="display"><span class="extract">self</span></code> at run-time</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">say_adjective_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">adjectival_phrase</span></code>: ...or the adjective to be agreed with by "say"</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">say_verb_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">verb_conjugation</span></code>: ...or the verb to be conjugated by "say"</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">say_verb_negated_ANNOT</span><span class="plain"> </span> <span class="comment">relevant only for that</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">self_object_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: this represents <code class="display"><span class="extract">self</span></code> at run-time</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">slash_class_ANNOT</span><span class="plain"> </span> <span class="comment">int: used when partitioning grammar tokens</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">slash_dash_dash_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: used when partitioning grammar tokens</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">ssp_closing_segment_wn_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: identifier for the last of these, or <code class="display"><span class="extract">-1</span></code></span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">ssp_segment_count_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: number of subsequent complex-say phrases in stream</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">subject_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">inference_subject</span></code>: what this node describes</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">subject_term_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">pcalc_term</span></code>: what the subject of the subtree was</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">suppress_newlines_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: whether the next say term runs on</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">table_cell_unspecified_ANNOT</span><span class="plain"> </span> <span class="comment">int: used to mark table entries as unset</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">text_unescaped_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: flag used only for literal texts</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">token_as_parsed_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">parse_node</span></code>: what if anything is returned</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">token_check_to_do_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">parse_node</span></code>: what if anything is returned</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">token_to_be_parsed_against_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">parse_node</span></code>: what if anything is returned</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">turned_already_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: aliasing like "player" to "yourself" performed already</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">unproven_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: this invocation needs run-time typechecking</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">verb_id_ANNOT</span><span class="plain"> </span> <span class="comment">int: identifying what kind of VERB node</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">verb_problem_issued_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: has a problem message about the primary verb been issued already?</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">vu_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">verb_usage</span></code>: for e.g. "does not carry"</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">you_can_ignore_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: for assertions now drained of meaning</span>
|
|
||||||
</pre>
|
|
||||||
<p class="inwebparagraph"><a id="SP11"></a><b>§11. </b></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -412,7 +179,7 @@ goes. The annotations used are identified by nonzero ID numbers, as follows:
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">COND_NCAT</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">COND_NCAT</span>
|
||||||
<span class="definitionkeyword">define</span> <span class="constant">PHRASAL_NFLAG</span><span class="plain"> 0</span><span class="identifier">x00000004</span><span class="plain"> </span> <span class="comment">compiles to a function call</span>
|
<span class="definitionkeyword">define</span> <span class="constant">PHRASAL_NFLAG</span><span class="plain"> 0</span><span class="identifier">x00000004</span><span class="plain"> </span> <span class="comment">compiles to a function call</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP12"></a><b>§12. </b></p>
|
<p class="inwebparagraph"><a id="SP9"></a><b>§9. </b></p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -475,7 +242,7 @@ goes. The annotations used are identified by nonzero ID numbers, as follows:
|
||||||
|
|
||||||
<p class="endnote">The function ParseTreeUsage::md appears nowhere else.</p>
|
<p class="endnote">The function ParseTreeUsage::md appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP13"></a><b>§13. </b></p>
|
<p class="inwebparagraph"><a id="SP10"></a><b>§10. </b></p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -663,7 +430,7 @@ goes. The annotations used are identified by nonzero ID numbers, as follows:
|
||||||
|
|
||||||
<p class="endnote">The function ParseTreeUsage::allow_annotation_to_specification appears nowhere else.</p>
|
<p class="endnote">The function ParseTreeUsage::allow_annotation_to_specification appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP14"></a><b>§14. </b></p>
|
<p class="inwebparagraph"><a id="SP11"></a><b>§11. </b></p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -683,7 +450,7 @@ goes. The annotations used are identified by nonzero ID numbers, as follows:
|
||||||
|
|
||||||
<p class="endnote">The function ParseTreeUsage::parentage_exceptions appears nowhere else.</p>
|
<p class="endnote">The function ParseTreeUsage::parentage_exceptions appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP15"></a><b>§15. </b>Further classification:
|
<p class="inwebparagraph"><a id="SP12"></a><b>§12. </b>Further classification:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -754,17 +521,17 @@ goes. The annotations used are identified by nonzero ID numbers, as follows:
|
||||||
|
|
||||||
<p class="endnote">The function ParseTreeUsage::is_specification_node_type appears nowhere else.</p>
|
<p class="endnote">The function ParseTreeUsage::is_specification_node_type appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="endnote">The function ParseTreeUsage::is_lvalue is used in <a href="#SP17_1">§17.1</a>, 12/dtd (<a href="12-dtd.html#SP16">§16</a>, <a href="12-dtd.html#SP23">§23</a>), 14/sp (<a href="14-sp.html#SP1">§1</a>, <a href="14-sp.html#SP6">§6</a>), 14/lv (<a href="14-lv.html#SP7">§7</a>), 14/cfs (<a href="14-cfs.html#SP7">§7</a>), 14/ds2 (<a href="14-ds2.html#SP10_1_1_3_1">§10.1.1.3.1</a>, <a href="14-ds2.html#SP11_2">§11.2</a>, <a href="14-ds2.html#SP19_5_4">§19.5.4</a>), 25/cii (<a href="25-cii.html#SP3_1_1_2">§3.1.1.2</a>).</p>
|
<p class="endnote">The function ParseTreeUsage::is_lvalue is used in <a href="#SP14_1">§14.1</a>, 12/dtd (<a href="12-dtd.html#SP16">§16</a>, <a href="12-dtd.html#SP23">§23</a>), 14/sp (<a href="14-sp.html#SP1">§1</a>, <a href="14-sp.html#SP6">§6</a>), 14/lv (<a href="14-lv.html#SP7">§7</a>), 14/cfs (<a href="14-cfs.html#SP7">§7</a>), 14/ds2 (<a href="14-ds2.html#SP10_1_1_3_1">§10.1.1.3.1</a>, <a href="14-ds2.html#SP11_2">§11.2</a>, <a href="14-ds2.html#SP19_5_4">§19.5.4</a>), 25/cii (<a href="25-cii.html#SP3_1_1_2">§3.1.1.2</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function ParseTreeUsage::is_rvalue is used in <a href="#SP17_1">§17.1</a>, 4/am (<a href="4-am.html#SP25">§25</a>), 11/sm (<a href="11-sm.html#SP10_4">§10.4</a>), 14/sp (<a href="14-sp.html#SP1">§1</a>, <a href="14-sp.html#SP6">§6</a>), 14/cfs (<a href="14-cfs.html#SP7">§7</a>), 22/prcd (<a href="22-prcd.html#SP6">§6</a>).</p>
|
<p class="endnote">The function ParseTreeUsage::is_rvalue is used in <a href="#SP14_1">§14.1</a>, 4/am (<a href="4-am.html#SP25">§25</a>), 11/sm (<a href="11-sm.html#SP10_4">§10.4</a>), 14/sp (<a href="14-sp.html#SP1">§1</a>, <a href="14-sp.html#SP6">§6</a>), 14/cfs (<a href="14-cfs.html#SP7">§7</a>), 22/prcd (<a href="22-prcd.html#SP6">§6</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function ParseTreeUsage::is_value is used in 9/pk (<a href="9-pk.html#SP4">§4</a>), 14/sp (<a href="14-sp.html#SP7_5">§7.5</a>), 14/ds2 (<a href="14-ds2.html#SP10_1_1_3_1">§10.1.1.3.1</a>, <a href="14-ds2.html#SP19_6_1">§19.6.1</a>), 25/ci (<a href="25-ci.html#SP3_2_3_4_1_1_1">§3.2.3.4.1.1.1</a>).</p>
|
<p class="endnote">The function ParseTreeUsage::is_value is used in 9/pk (<a href="9-pk.html#SP4">§4</a>), 14/sp (<a href="14-sp.html#SP7_5">§7.5</a>), 14/ds2 (<a href="14-ds2.html#SP10_1_1_3_1">§10.1.1.3.1</a>, <a href="14-ds2.html#SP19_6_1">§19.6.1</a>), 25/ci (<a href="25-ci.html#SP3_2_3_4_1_1_1">§3.2.3.4.1.1.1</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function ParseTreeUsage::is_condition is used in <a href="#SP17_1">§17.1</a>, 4/am (<a href="4-am.html#SP25">§25</a>), 14/sp (<a href="14-sp.html#SP6">§6</a>), 14/cn (<a href="14-cn.html#SP15">§15</a>), 14/cfs (<a href="14-cfs.html#SP7">§7</a>), 14/ds2 (<a href="14-ds2.html#SP19_6_2">§19.6.2</a>), 25/cp (<a href="25-cp.html#SP5_3_2">§5.3.2</a>).</p>
|
<p class="endnote">The function ParseTreeUsage::is_condition is used in <a href="#SP14_1">§14.1</a>, 4/am (<a href="4-am.html#SP25">§25</a>), 14/sp (<a href="14-sp.html#SP6">§6</a>), 14/cn (<a href="14-cn.html#SP15">§15</a>), 14/cfs (<a href="14-cfs.html#SP7">§7</a>), 14/ds2 (<a href="14-ds2.html#SP19_6_2">§19.6.2</a>), 25/cp (<a href="25-cp.html#SP5_3_2">§5.3.2</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function ParseTreeUsage::is_phrasal is used in 11/tr (<a href="11-tr.html#SP10">§10</a>), 11/bas (<a href="11-bas.html#SP19">§19</a>), 12/cad (<a href="12-cad.html#SP6">§6</a>), 24/lv (<a href="24-lv.html#SP34">§34</a>).</p>
|
<p class="endnote">The function ParseTreeUsage::is_phrasal is used in 11/tr (<a href="11-tr.html#SP10">§10</a>), 11/bas (<a href="11-bas.html#SP19">§19</a>), 12/cad (<a href="12-cad.html#SP6">§6</a>), 24/lv (<a href="24-lv.html#SP34">§34</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP16"></a><b>§16. The assertion-maker's invariant. </b>Hmm: "The Assertion-Maker's Invariant" might make a good magic-realism
|
<p class="inwebparagraph"><a id="SP13"></a><b>§13. The assertion-maker's invariant. </b>Hmm: "The Assertion-Maker's Invariant" might make a good magic-realism
|
||||||
novel, in which an enigmatic wise man of Samarkand builds an ingenious box
|
novel, in which an enigmatic wise man of Samarkand builds an ingenious box
|
||||||
from camphor-wood in which he traps the dreams of the people, who — However.
|
from camphor-wood in which he traps the dreams of the people, who — However.
|
||||||
When assertions are processed, the subtrees being compared will be required to
|
When assertions are processed, the subtrees being compared will be required to
|
||||||
|
@ -784,7 +551,7 @@ be such that their head nodes each pass this test:
|
||||||
|
|
||||||
<p class="endnote">The function ParseTreeUsage::allow_in_assertions is used in 9/ma (<a href="9-ma.html#SP2">§2</a>).</p>
|
<p class="endnote">The function ParseTreeUsage::allow_in_assertions is used in 9/ma (<a href="9-ma.html#SP2">§2</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP17"></a><b>§17. </b></p>
|
<p class="inwebparagraph"><a id="SP14"></a><b>§14. </b></p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -798,9 +565,9 @@ be such that their head nodes each pass this test:
|
||||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Wordings::nonempty</span><span class="plain">(</span><span class="identifier">ParseTree::get_text</span><span class="plain">(</span><span class="identifier">pn</span><span class="plain">))) </span><span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"'%W'"</span><span class="plain">, </span><span class="identifier">ParseTree::get_text</span><span class="plain">(</span><span class="identifier">pn</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">ParseTree::get_text</span><span class="plain">(</span><span class="identifier">pn</span><span class="plain">))) </span><span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"'%W'"</span><span class="plain">, </span><span class="identifier">ParseTree::get_text</span><span class="plain">(</span><span class="identifier">pn</span><span class="plain">));</span>
|
||||||
|
|
||||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">pn</span><span class="plain">-></span><span class="identifier">node_type</span><span class="plain"> >= </span><span class="constant">UNKNOWN_NT</span><span class="plain">) && (</span><span class="identifier">pn</span><span class="plain">-></span><span class="identifier">node_type</span><span class="plain"> <= </span><span class="constant">TEST_VALUE_NT</span><span class="plain">))</span>
|
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">pn</span><span class="plain">-></span><span class="identifier">node_type</span><span class="plain"> >= </span><span class="constant">UNKNOWN_NT</span><span class="plain">) && (</span><span class="identifier">pn</span><span class="plain">-></span><span class="identifier">node_type</span><span class="plain"> <= </span><span class="constant">TEST_VALUE_NT</span><span class="plain">))</span>
|
||||||
<<span class="cwebmacro">Log annotations of specification nodes</span> <span class="cwebmacronumber">17.1</span>>
|
<<span class="cwebmacro">Log annotations of specification nodes</span> <span class="cwebmacronumber">14.1</span>>
|
||||||
<span class="reserved">else</span>
|
<span class="reserved">else</span>
|
||||||
<<span class="cwebmacro">Log annotations of structural nodes</span> <span class="cwebmacronumber">17.2</span>><span class="plain">;</span>
|
<<span class="cwebmacro">Log annotations of structural nodes</span> <span class="cwebmacronumber">14.2</span>><span class="plain">;</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
@ -808,8 +575,8 @@ be such that their head nodes each pass this test:
|
||||||
|
|
||||||
<p class="endnote">The function ParseTreeUsage::log_node appears nowhere else.</p>
|
<p class="endnote">The function ParseTreeUsage::log_node appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP17_1"></a><b>§17.1. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP14_1"></a><b>§14.1. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Log annotations of specification nodes</span> <span class="cwebmacronumber">17.1</span>> =
|
<<span class="cwebmacrodefn">Log annotations of specification nodes</span> <span class="cwebmacronumber">14.1</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -824,14 +591,14 @@ be such that their head nodes each pass this test:
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP17">§17</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP14">§14</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP17_2"></a><b>§17.2. </b>We do not log every annotation: only the few which are most illuminating.
|
<p class="inwebparagraph"><a id="SP14_2"></a><b>§14.2. </b>We do not log every annotation: only the few which are most illuminating.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<p class="macrodefinition"><code class="display">
|
<p class="macrodefinition"><code class="display">
|
||||||
<<span class="cwebmacrodefn">Log annotations of structural nodes</span> <span class="cwebmacronumber">17.2</span>> =
|
<<span class="cwebmacrodefn">Log annotations of structural nodes</span> <span class="cwebmacronumber">14.2</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -889,9 +656,9 @@ be such that their head nodes each pass this test:
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP17">§17</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP14">§14</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP18"></a><b>§18. </b></p>
|
<p class="inwebparagraph"><a id="SP15"></a><b>§15. </b></p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
<pre class="display">
|
||||||
|
@ -909,7 +676,7 @@ be such that their head nodes each pass this test:
|
||||||
|
|
||||||
<p class="endnote">The function ParseTreeUsage::verify is used in 1/htc (<a href="1-htc.html#SP2_3">§2.3</a>).</p>
|
<p class="endnote">The function ParseTreeUsage::verify is used in 1/htc (<a href="1-htc.html#SP2_3">§2.3</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP19"></a><b>§19. </b></p>
|
<p class="inwebparagraph"><a id="SP16"></a><b>§16. </b></p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
|
|
@ -56,37 +56,30 @@
|
||||||
</nav>
|
</nav>
|
||||||
<main role="main">
|
<main role="main">
|
||||||
|
|
||||||
<!--Weave of '1/im' generated by 7-->
|
<!--Weave of '1/hm' generated by 7-->
|
||||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">html</a></li><li><a href="index.html#1">Chapter 1: Starting Up</a></li><li><b>Index Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">html</a></li><li><a href="index.html#1">Chapter 1: Starting Up</a></li><li><b>HTML Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="#SP1">§1. Introduction</a></li><li><a href="#SP3">§3. The beginning</a></li><li><a href="#SP4">§4. The end</a></li></ul><hr class="tocbar">
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>This section simoly sets up the module in ways expected by <code class="display"><span class="extract">foundation</span></code>, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Introduction. </b></p>
|
which use this module:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
<span class="definitionkeyword">define</span> <span class="constant">HTML_MODULE</span><span class="plain"> </span><span class="identifier">TRUE</span>
|
<span class="definitionkeyword">define</span> <span class="constant">HTML_MODULE</span><span class="plain"> </span><span class="identifier">TRUE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b>Like all modules, this one must define a <code class="display"><span class="extract">start</span></code> and <code class="display"><span class="extract">end</span></code> function:
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. The beginning. </b>(The client doesn't need to call the start and end routines, because the
|
|
||||||
foundation module does that automatically.)
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
<pre class="display">
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">HTMLModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">HTMLModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.1</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">2.1</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.2</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">2.2</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.3</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">2.3</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's command line switches</span> <span class="cwebmacronumber">3.4</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">2.4</span>><span class="character">;</span>
|
||||||
|
<span class="plain">}</span>
|
||||||
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">HTMLModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
@ -94,70 +87,60 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">The function HTMLModule::start appears nowhere else.</p>
|
<p class="endnote">The function HTMLModule::start appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
|
||||||
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">3.1</span>> =
|
|
||||||
</code></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="displaydefn">
|
|
||||||
<span class="plain">;</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_2"></a><b>§3.2. </b><code class="display">
|
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.2</span>> =
|
|
||||||
</code></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="displaydefn">
|
|
||||||
<span class="plain">;</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_3"></a><b>§3.3. </b><code class="display">
|
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.3</span>> =
|
|
||||||
</code></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="displaydefn">
|
|
||||||
<span class="plain">;</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_4"></a><b>§3.4. </b><code class="display">
|
|
||||||
<<span class="cwebmacrodefn">Register this module's command line switches</span> <span class="cwebmacronumber">3.4</span>> =
|
|
||||||
</code></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="displaydefn">
|
|
||||||
<span class="plain">;</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. The end. </b></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">HTMLModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
||||||
<span class="plain">}</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">The function HTMLModule::end appears nowhere else.</p>
|
<p class="endnote">The function HTMLModule::end appears nowhere else.</p>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"><a id="SP2_1"></a><b>§2.1. </b><code class="display">
|
||||||
|
<<span class="cwebmacrodefn">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">2.1</span>> =
|
||||||
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
<pre class="displaydefn">
|
||||||
|
<span class="plain">;</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
|
<p class="endnote">This code is used in <a href="#SP2">§2</a>.</p>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"><a id="SP2_2"></a><b>§2.2. </b><code class="display">
|
||||||
|
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">2.2</span>> =
|
||||||
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
<pre class="displaydefn">
|
||||||
|
<span class="plain">;</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
|
<p class="endnote">This code is used in <a href="#SP2">§2</a>.</p>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"><a id="SP2_3"></a><b>§2.3. </b><code class="display">
|
||||||
|
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">2.3</span>> =
|
||||||
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
<pre class="displaydefn">
|
||||||
|
<span class="plain">;</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
|
<p class="endnote">This code is used in <a href="#SP2">§2</a>.</p>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"><a id="SP2_4"></a><b>§2.4. </b><code class="display">
|
||||||
|
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">2.4</span>> =
|
||||||
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
<pre class="displaydefn">
|
||||||
|
<span class="plain">;</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
|
<p class="endnote">This code is used in <a href="#SP2">§2</a>.</p>
|
||||||
|
|
||||||
<hr class="tocbar">
|
<hr class="tocbar">
|
||||||
<!--End of weave-->
|
<!--End of weave-->
|
||||||
</main>
|
</main>
|
|
@ -1,7 +1,7 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>1/im</title>
|
<title>1/hm</title>
|
||||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
<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-Type" content="text/html; charset=utf-8">
|
||||||
<meta http-equiv="Content-Language" content="en-gb">
|
<meta http-equiv="Content-Language" content="en-gb">
|
||||||
|
|
|
@ -63,7 +63,7 @@
|
||||||
<p><span class="purpose"></span></p>
|
<p><span class="purpose"></span></p>
|
||||||
<ul class="sectionlist">
|
<ul class="sectionlist">
|
||||||
<li>
|
<li>
|
||||||
<p><a href="1-im.html"><spon class="sectiontitle">Index Module</span></a> -
|
<p><a href="1-hm.html"><spon class="sectiontitle">HTML Module</span></a> -
|
||||||
<span class="purpose">Setting up the use of this module.</span></p>
|
<span class="purpose">Setting up the use of this module.</span></p>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -59,29 +59,18 @@
|
||||||
<!--Weave of '1/im' generated by 7-->
|
<!--Weave of '1/im' generated by 7-->
|
||||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">if</a></li><li><a href="index.html#1">Chapter 1: Starting Up</a></li><li><b>IF Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">if</a></li><li><a href="index.html#1">Chapter 1: Starting Up</a></li><li><b>IF Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="#SP1">§1. Predeclarations</a></li><li><a href="#SP2">§2. Introduction</a></li><li><a href="#SP4">§4. The beginning</a></li><li><a href="#SP5">§5. The end</a></li></ul><hr class="tocbar">
|
<ul class="toc"><li><a href="#SP3">§3. The beginning</a></li></ul><hr class="tocbar">
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Predeclarations. </b></p>
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>This section simoly sets up the module in ways expected by <code class="display"><span class="extract">foundation</span></code>, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
|
which use this module:
|
||||||
<pre class="display">
|
</p>
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">action_meaning</span><span class="plain">, </span><span class="reserved">action_pattern</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_action_name</span><span class="plain">, </span><span class="reserved">action_name</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_action_pattern</span><span class="plain">, </span><span class="reserved">action_pattern</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_grammar_verb</span><span class="plain">, </span><span class="reserved">grammar_verb</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_named_action_pattern</span><span class="plain">, </span><span class="reserved">named_action_pattern</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_scene</span><span class="plain">, </span><span class="reserved">scene</span><span class="plain">)</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP2"></a><b>§2. Introduction. </b></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
<span class="definitionkeyword">define</span> <span class="constant">IF_MODULE</span><span class="plain"> </span><span class="identifier">TRUE</span>
|
<span class="definitionkeyword">define</span> <span class="constant">IF_MODULE</span><span class="plain"> </span><span class="identifier">TRUE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>To begin with, this module needs to allocate memory:
|
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -163,7 +152,7 @@
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. The beginning. </b>(The client doesn't need to call the start and end routines, because the
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. The beginning. </b>(The client doesn't need to call the start and end routines, because the
|
||||||
foundation module does that automatically.)
|
foundation module does that automatically.)
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -176,10 +165,12 @@ foundation module does that automatically.)
|
||||||
<span class="identifier">COMPILE_WRITER</span><span class="plain">(</span><span class="reserved">action_name</span><span class="plain"> *, </span><span class="functiontext">PL::Actions::log</span><span class="plain">)</span>
|
<span class="identifier">COMPILE_WRITER</span><span class="plain">(</span><span class="reserved">action_name</span><span class="plain"> *, </span><span class="functiontext">PL::Actions::log</span><span class="plain">)</span>
|
||||||
|
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">IFModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">IFModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">4.1</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">3.1</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">4.3</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.2</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">4.4</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.4</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's command line switches</span> <span class="cwebmacronumber">4.5</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.5</span>><span class="character">;</span>
|
||||||
|
<span class="plain">}</span>
|
||||||
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">IFModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
@ -187,8 +178,10 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">The function IFModule::start appears nowhere else.</p>
|
<p class="endnote">The function IFModule::start appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4_1"></a><b>§4.1. </b><code class="display">
|
<p class="endnote">The function IFModule::end appears nowhere else.</p>
|
||||||
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">4.1</span>> =
|
|
||||||
|
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
||||||
|
<<span class="cwebmacrodefn">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">3.1</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -198,17 +191,30 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP4">§4</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4_2"></a><b>§4.2. </b></p>
|
<p class="inwebparagraph"><a id="SP3_2"></a><b>§3.2. </b><code class="display">
|
||||||
|
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">3.2</span>> =
|
||||||
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
<pre class="displaydefn">
|
||||||
|
<span class="plain">;</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"><a id="SP3_3"></a><b>§3.3. </b></p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">GRAMMAR_DA</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">GRAMMAR_DA</span>
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">GRAMMAR_CONSTRUCTION_DA</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">GRAMMAR_CONSTRUCTION_DA</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP4_3"></a><b>§4.3. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_4"></a><b>§3.4. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">4.3</span>> =
|
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.4</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -219,10 +225,10 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP4">§4</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4_4"></a><b>§4.4. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_5"></a><b>§3.5. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">4.4</span>> =
|
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.5</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -236,33 +242,24 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP4">§4</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4_5"></a><b>§4.5. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP4"></a><b>§4. </b>This module uses <code class="display"><span class="extract">syntax</span></code>, and adds the following annotations to the
|
||||||
<<span class="cwebmacrodefn">Register this module's command line switches</span> <span class="cwebmacronumber">4.5</span>> =
|
syntax tree.
|
||||||
</code></p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="displaydefn">
|
|
||||||
<span class="plain">;</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP4">§4</a>.</p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP5"></a><b>§5. The end. </b></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
<pre class="display">
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">IFModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">action_meaning</span><span class="plain">, </span><span class="reserved">action_pattern</span><span class="plain">)</span>
|
||||||
<span class="plain">}</span>
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_action_name</span><span class="plain">, </span><span class="reserved">action_name</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_action_pattern</span><span class="plain">, </span><span class="reserved">action_pattern</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_grammar_verb</span><span class="plain">, </span><span class="reserved">grammar_verb</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_named_action_pattern</span><span class="plain">, </span><span class="reserved">named_action_pattern</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">constant_scene</span><span class="plain">, </span><span class="reserved">scene</span><span class="plain">)</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function IFModule::end appears nowhere else.</p>
|
|
||||||
|
|
||||||
<hr class="tocbar">
|
<hr class="tocbar">
|
||||||
<!--End of weave-->
|
<!--End of weave-->
|
||||||
</main>
|
</main>
|
||||||
|
|
|
@ -527,7 +527,7 @@ will do: it doesn't have to be "it".)
|
||||||
|
|
||||||
<p class="endnote">The function PL::Actions::action_names_overlap is used in <a href="#SP16">§16</a>.</p>
|
<p class="endnote">The function PL::Actions::action_names_overlap is used in <a href="#SP16">§16</a>.</p>
|
||||||
|
|
||||||
<p class="endnote">The function PL::Actions::log is used in 1/im (<a href="1-im.html#SP4">§4</a>, <a href="1-im.html#SP4_4">§4.4</a>).</p>
|
<p class="endnote">The function PL::Actions::log is used in 1/im (<a href="1-im.html#SP3">§3</a>, <a href="1-im.html#SP3_5">§3.5</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP19"></a><b>§19. </b>And the following matches an action name (with no substitution of noun
|
<p class="inwebparagraph"><a id="SP19"></a><b>§19. </b>And the following matches an action name (with no substitution of noun
|
||||||
phrases: "unlocking the door with" won't match the unlocking action; only
|
phrases: "unlocking the door with" won't match the unlocking action; only
|
||||||
|
|
|
@ -161,7 +161,7 @@ text (e.g. "taking, dropping or examining a door").
|
||||||
|
|
||||||
<p class="endnote">The function PL::Actions::Lists::anl_new is used in <a href="#SP3_1">§3.1</a>, <a href="#SP4_2">§4.2</a>, <a href="#SP6_1">§6.1</a>, <a href="#SP6_2">§6.2</a>, <a href="#SP9">§9</a>.</p>
|
<p class="endnote">The function PL::Actions::Lists::anl_new is used in <a href="#SP3_1">§3.1</a>, <a href="#SP4_2">§4.2</a>, <a href="#SP6_1">§6.1</a>, <a href="#SP6_2">§6.2</a>, <a href="#SP9">§9</a>.</p>
|
||||||
|
|
||||||
<p class="endnote">The function PL::Actions::Lists::log is used in 1/im (<a href="1-im.html#SP4">§4</a>, <a href="1-im.html#SP4_4">§4.4</a>).</p>
|
<p class="endnote">The function PL::Actions::Lists::log is used in 1/im (<a href="1-im.html#SP3">§3</a>, <a href="1-im.html#SP3_5">§3.5</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function PL::Actions::Lists::log_briefly is used in 4/ap (<a href="4-ap.html#SP5">§5</a>).</p>
|
<p class="endnote">The function PL::Actions::Lists::log_briefly is used in 4/ap (<a href="4-ap.html#SP5">§5</a>).</p>
|
||||||
|
|
||||||
|
|
|
@ -416,7 +416,7 @@ STV clauses; (2) get this right:
|
||||||
|
|
||||||
<p class="endnote">The function PL::Actions::Patterns::compare_specificity_of_apoc_list is used in <a href="#SP27">§27</a>.</p>
|
<p class="endnote">The function PL::Actions::Patterns::compare_specificity_of_apoc_list is used in <a href="#SP27">§27</a>.</p>
|
||||||
|
|
||||||
<p class="endnote">The function PL::Actions::Patterns::log is used in 1/im (<a href="1-im.html#SP4">§4</a>, <a href="1-im.html#SP4_4">§4.4</a>).</p>
|
<p class="endnote">The function PL::Actions::Patterns::log is used in 1/im (<a href="1-im.html#SP3">§3</a>, <a href="1-im.html#SP3_5">§3.5</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function PL::Actions::Patterns::ap_store is used in <a href="#SP22_1">§22.1</a>, <a href="#SP23">§23</a>.</p>
|
<p class="endnote">The function PL::Actions::Patterns::ap_store is used in <a href="#SP22_1">§22.1</a>, <a href="#SP23">§23</a>.</p>
|
||||||
|
|
||||||
|
|
|
@ -193,7 +193,7 @@ to calculate, and useful when sorting grammar lines into applicability order.
|
||||||
|
|
||||||
<p class="endnote">The function PL::Parsing::Lines::new is used in 5/tfg (<a href="5-tfg.html#SP21">§21</a>).</p>
|
<p class="endnote">The function PL::Parsing::Lines::new is used in 5/tfg (<a href="5-tfg.html#SP21">§21</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function PL::Parsing::Lines::log is used in 1/im (<a href="1-im.html#SP4">§4</a>, <a href="1-im.html#SP4_4">§4.4</a>).</p>
|
<p class="endnote">The function PL::Parsing::Lines::log is used in 1/im (<a href="1-im.html#SP3">§3</a>, <a href="1-im.html#SP3_5">§3.5</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function PL::Parsing::Lines::set_single_type is used in 5/tfg (<a href="5-tfg.html#SP21">§21</a>).</p>
|
<p class="endnote">The function PL::Parsing::Lines::set_single_type is used in 5/tfg (<a href="5-tfg.html#SP21">§21</a>).</p>
|
||||||
|
|
||||||
|
|
|
@ -192,7 +192,7 @@ We record those as instances of the following:
|
||||||
|
|
||||||
<p class="endnote">The function PL::Parsing::Verbs::gv_new is used in <a href="#SP7">§7</a>, <a href="#SP13">§13</a>, <a href="#SP16">§16</a>, <a href="#SP17">§17</a>, <a href="#SP18">§18</a>, <a href="#SP19">§19</a>.</p>
|
<p class="endnote">The function PL::Parsing::Verbs::gv_new is used in <a href="#SP7">§7</a>, <a href="#SP13">§13</a>, <a href="#SP16">§16</a>, <a href="#SP17">§17</a>, <a href="#SP18">§18</a>, <a href="#SP19">§19</a>.</p>
|
||||||
|
|
||||||
<p class="endnote">The function PL::Parsing::Verbs::log is used in 1/im (<a href="1-im.html#SP4">§4</a>, <a href="1-im.html#SP4_4">§4.4</a>).</p>
|
<p class="endnote">The function PL::Parsing::Verbs::log is used in 1/im (<a href="1-im.html#SP3">§3</a>, <a href="1-im.html#SP3_5">§3.5</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP6"></a><b>§6. Command words. </b>Some GVs are used to represent the command grammar for imperative verbs
|
<p class="inwebparagraph"><a id="SP6"></a><b>§6. Command words. </b>Some GVs are used to represent the command grammar for imperative verbs
|
||||||
used by the player at run-time. Such a GV handles multiple commands, which
|
used by the player at run-time. Such a GV handles multiple commands, which
|
||||||
|
|
|
@ -228,6 +228,25 @@ which use this module:
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"><a id="SP4"></a><b>§4. </b>This module uses <code class="display"><span class="extract">syntax</span></code>, and adds the following annotations to the
|
||||||
|
syntax tree.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<pre class="definitions">
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">embodying_heading_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">heading</span></code>: for parse nodes of headings</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">inclusion_of_extension_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">inform_extension</span></code>: for parse nodes of headings</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<pre class="display">
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">embodying_heading</span><span class="plain">, </span><span class="reserved">heading</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">embodying_heading</span><span class="plain">, </span><span class="reserved">heading</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">inclusion_of_extension</span><span class="plain">, </span><span class="reserved">inform_extension</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">inclusion_of_extension</span><span class="plain">, </span><span class="reserved">inform_extension</span><span class="plain">)</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<hr class="tocbar">
|
<hr class="tocbar">
|
||||||
<ul class="toc"><li><i>(This section begins Chapter 1: Setting Up.)</i></li><li><a href="1-ic.html">Continue with 'Inbuild Control'</a></li></ul><hr class="tocbar">
|
<ul class="toc"><li><i>(This section begins Chapter 1: Setting Up.)</i></li><li><a href="1-ic.html">Continue with 'Inbuild Control'</a></li></ul><hr class="tocbar">
|
||||||
<!--End of weave-->
|
<!--End of weave-->
|
||||||
|
|
|
@ -318,11 +318,6 @@ and cannot contain information about releasing or about virtual machines.
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
<pre class="display">
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">embodying_heading</span><span class="plain">, </span><span class="reserved">heading</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">embodying_heading</span><span class="plain">, </span><span class="reserved">heading</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">inclusion_of_extension</span><span class="plain">, </span><span class="reserved">inform_extension</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">inclusion_of_extension</span><span class="plain">, </span><span class="reserved">inform_extension</span><span class="plain">)</span>
|
|
||||||
|
|
||||||
<span class="reserved">heading</span><span class="plain"> *</span><span class="functiontext">Headings::from_node</span><span class="plain">(</span><span class="identifier">parse_node</span><span class="plain"> *</span><span class="identifier">PN</span><span class="plain">) {</span>
|
<span class="reserved">heading</span><span class="plain"> *</span><span class="functiontext">Headings::from_node</span><span class="plain">(</span><span class="identifier">parse_node</span><span class="plain"> *</span><span class="identifier">PN</span><span class="plain">) {</span>
|
||||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">ParseTree::get_embodying_heading</span><span class="plain">(</span><span class="identifier">PN</span><span class="plain">);</span>
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">ParseTree::get_embodying_heading</span><span class="plain">(</span><span class="identifier">PN</span><span class="plain">);</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
|
|
|
@ -59,9 +59,10 @@
|
||||||
<!--Weave of '1/im' generated by 7-->
|
<!--Weave of '1/im' generated by 7-->
|
||||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">index</a></li><li><a href="index.html#1">Chapter 1: Starting Up</a></li><li><b>Index Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">index</a></li><li><a href="index.html#1">Chapter 1: Starting Up</a></li><li><b>Index Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="#SP1">§1. Introduction</a></li><li><a href="#SP3">§3. The beginning</a></li><li><a href="#SP4">§4. The end</a></li></ul><hr class="tocbar">
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>This section simoly sets up the module in ways expected by <code class="display"><span class="extract">foundation</span></code>, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Introduction. </b></p>
|
which use this module:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -87,16 +88,18 @@
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. The beginning. </b>(The client doesn't need to call the start and end routines, because the
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>Like all modules, this one must define a <code class="display"><span class="extract">start</span></code> and <code class="display"><span class="extract">end</span></code> function:
|
||||||
foundation module does that automatically.)
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
<pre class="display">
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">IndexModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">IndexModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.1</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">3.1</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.2</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.2</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.3</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.3</span>><span class="character">;</span>
|
||||||
|
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.4</span>><span class="character">;</span>
|
||||||
|
<span class="plain">}</span>
|
||||||
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">IndexModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
@ -104,8 +107,10 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">The function IndexModule::start appears nowhere else.</p>
|
<p class="endnote">The function IndexModule::start appears nowhere else.</p>
|
||||||
|
|
||||||
|
<p class="endnote">The function IndexModule::end appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">3.1</span>> =
|
<<span class="cwebmacrodefn">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">3.1</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -118,7 +123,7 @@ foundation module does that automatically.)
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_2"></a><b>§3.2. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_2"></a><b>§3.2. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.2</span>> =
|
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">3.2</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -131,7 +136,7 @@ foundation module does that automatically.)
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_3"></a><b>§3.3. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_3"></a><b>§3.3. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.3</span>> =
|
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.3</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -143,17 +148,18 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. The end. </b></p>
|
<p class="inwebparagraph"><a id="SP3_4"></a><b>§3.4. </b><code class="display">
|
||||||
|
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.4</span>> =
|
||||||
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
<pre class="displaydefn">
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">IndexModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
<span class="plain">;</span>
|
||||||
<span class="plain">}</span>
|
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function IndexModule::end appears nowhere else.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<hr class="tocbar">
|
<hr class="tocbar">
|
||||||
<!--End of weave-->
|
<!--End of weave-->
|
||||||
|
|
|
@ -59,9 +59,10 @@
|
||||||
<!--Weave of '1/im' generated by 7-->
|
<!--Weave of '1/im' generated by 7-->
|
||||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">inflections</a></li><li><a href="index.html#1">Chapter 1: Starting Up</a></li><li><b>Inflections Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">inflections</a></li><li><a href="index.html#1">Chapter 1: Starting Up</a></li><li><b>Inflections Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="#SP1">§1. Introduction</a></li><li><a href="#SP3">§3. The beginning</a></li><li><a href="#SP4">§4. The end</a></li></ul><hr class="tocbar">
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>This section simoly sets up the module in ways expected by <code class="display"><span class="extract">foundation</span></code>, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Introduction. </b></p>
|
which use this module:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -87,8 +88,7 @@
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. The beginning. </b>(The client doesn't need to call the start and end routines, because the
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>Like all modules, this one must define a <code class="display"><span class="extract">start</span></code> and <code class="display"><span class="extract">end</span></code> function:
|
||||||
foundation module does that automatically.)
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -99,12 +99,16 @@ foundation module does that automatically.)
|
||||||
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.4</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.4</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's command line switches</span> <span class="cwebmacronumber">3.5</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's command line switches</span> <span class="cwebmacronumber">3.5</span>><span class="character">;</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InflectionsModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
|
<span class="plain">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function InflectionsModule::start appears nowhere else.</p>
|
<p class="endnote">The function InflectionsModule::start appears nowhere else.</p>
|
||||||
|
|
||||||
|
<p class="endnote">The function InflectionsModule::end appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">3.1</span>> =
|
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">3.1</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
@ -165,18 +169,6 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. The end. </b></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InflectionsModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
||||||
<span class="plain">}</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">The function InflectionsModule::end appears nowhere else.</p>
|
|
||||||
|
|
||||||
<hr class="tocbar">
|
<hr class="tocbar">
|
||||||
<!--End of weave-->
|
<!--End of weave-->
|
||||||
</main>
|
</main>
|
||||||
|
|
|
@ -59,9 +59,10 @@
|
||||||
<!--Weave of '1/im' generated by 7-->
|
<!--Weave of '1/im' generated by 7-->
|
||||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">inter</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>Inter Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">inter</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>Inter Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="#SP1">§1. Introduction</a></li><li><a href="#SP3">§3. The beginning</a></li><li><a href="#SP4">§4. The end</a></li></ul><hr class="tocbar">
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>This section simoly sets up the module in ways expected by <code class="display"><span class="extract">foundation</span></code>, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Introduction. </b></p>
|
which use this module:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -111,8 +112,7 @@
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. The beginning. </b>(The client doesn't need to call the start and end routines, because the
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>Like all modules, this one must define a <code class="display"><span class="extract">start</span></code> and <code class="display"><span class="extract">end</span></code> function:
|
||||||
foundation module does that automatically.)
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -122,17 +122,20 @@ foundation module does that automatically.)
|
||||||
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.3</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.3</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.5</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.5</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.6</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.6</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's command line switches</span> <span class="cwebmacronumber">3.7</span>><span class="character">;</span>
|
|
||||||
|
|
||||||
<span class="functiontext">Inter::Defn::create_language</span><span class="plain">();</span>
|
<span class="functiontext">Inter::Defn::create_language</span><span class="plain">();</span>
|
||||||
<span class="functiontext">Inter::Types::create_all</span><span class="plain">();</span>
|
<span class="functiontext">Inter::Types::create_all</span><span class="plain">();</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InterModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
|
<span class="plain">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function InterModule::start appears nowhere else.</p>
|
<p class="endnote">The function InterModule::start appears nowhere else.</p>
|
||||||
|
|
||||||
|
<p class="endnote">The function InterModule::end appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b></p>
|
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -215,31 +218,6 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_7"></a><b>§3.7. </b><code class="display">
|
|
||||||
<<span class="cwebmacrodefn">Register this module's command line switches</span> <span class="cwebmacronumber">3.7</span>> =
|
|
||||||
</code></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="displaydefn">
|
|
||||||
<span class="plain">;</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. The end. </b></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InterModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
||||||
<span class="plain">}</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">The function InterModule::end appears nowhere else.</p>
|
|
||||||
|
|
||||||
<hr class="tocbar">
|
<hr class="tocbar">
|
||||||
<!--End of weave-->
|
<!--End of weave-->
|
||||||
</main>
|
</main>
|
||||||
|
|
|
@ -59,9 +59,10 @@
|
||||||
<!--Weave of '1/km' generated by 7-->
|
<!--Weave of '1/km' generated by 7-->
|
||||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">kinds</a></li><li><a href="index.html#1">Chapter 1: Starting Up</a></li><li><b>Kinds Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">kinds</a></li><li><a href="index.html#1">Chapter 1: Starting Up</a></li><li><b>Kinds Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="#SP1">§1. Introduction</a></li><li><a href="#SP3">§3. The beginning</a></li><li><a href="#SP4">§4. The end</a></li></ul><hr class="tocbar">
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>This section simoly sets up the module in ways expected by <code class="display"><span class="extract">foundation</span></code>, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Introduction. </b></p>
|
which use this module:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -101,17 +102,18 @@
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. The beginning. </b>(The client doesn't need to call the start and end routines, because the
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>Like all modules, this one must define a <code class="display"><span class="extract">start</span></code> and <code class="display"><span class="extract">end</span></code> function:
|
||||||
foundation module does that automatically.)
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
<pre class="display">
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">KindsModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">KindsModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.1</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">3.1</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.3</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.2</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.4</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.4</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's command line switches</span> <span class="cwebmacronumber">3.5</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.5</span>><span class="character">;</span>
|
||||||
|
<span class="plain">}</span>
|
||||||
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">KindsModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
@ -119,8 +121,10 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">The function KindsModule::start appears nowhere else.</p>
|
<p class="endnote">The function KindsModule::start appears nowhere else.</p>
|
||||||
|
|
||||||
|
<p class="endnote">The function KindsModule::end appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">3.1</span>> =
|
<<span class="cwebmacrodefn">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">3.1</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -132,7 +136,20 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_2"></a><b>§3.2. </b></p>
|
<p class="inwebparagraph"><a id="SP3_2"></a><b>§3.2. </b><code class="display">
|
||||||
|
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">3.2</span>> =
|
||||||
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
<pre class="displaydefn">
|
||||||
|
<span class="plain">;</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"><a id="SP3_3"></a><b>§3.3. </b></p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -141,8 +158,8 @@ foundation module does that automatically.)
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">KIND_CREATIONS_DA</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">KIND_CREATIONS_DA</span>
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">MATCHING_DA</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">MATCHING_DA</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP3_3"></a><b>§3.3. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_4"></a><b>§3.4. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.3</span>> =
|
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.4</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -157,21 +174,8 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_4"></a><b>§3.4. </b><code class="display">
|
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.4</span>> =
|
|
||||||
</code></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="displaydefn">
|
|
||||||
<span class="plain">;</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_5"></a><b>§3.5. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_5"></a><b>§3.5. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's command line switches</span> <span class="cwebmacronumber">3.5</span>> =
|
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.5</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -183,18 +187,6 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. The end. </b></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">KindsModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
||||||
<span class="plain">}</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">The function KindsModule::end appears nowhere else.</p>
|
|
||||||
|
|
||||||
<hr class="tocbar">
|
<hr class="tocbar">
|
||||||
<!--End of weave-->
|
<!--End of weave-->
|
||||||
</main>
|
</main>
|
||||||
|
|
|
@ -59,9 +59,10 @@
|
||||||
<!--Weave of '1/lm' generated by 7-->
|
<!--Weave of '1/lm' generated by 7-->
|
||||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">linguistics</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>Linguistics Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">linguistics</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>Linguistics Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="#SP1">§1. Introduction</a></li><li><a href="#SP3">§3. The beginning</a></li><li><a href="#SP5">§5. The end</a></li></ul><hr class="tocbar">
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>This section simoly sets up the module in ways expected by <code class="display"><span class="extract">foundation</span></code>, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Introduction. </b></p>
|
which use this module:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -107,30 +108,33 @@
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. The beginning. </b>(The client doesn't need to call the start and end routines, because the
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>Like all modules, this one must define a <code class="display"><span class="extract">start</span></code> and <code class="display"><span class="extract">end</span></code> function:
|
||||||
foundation module does that automatically.)
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
<pre class="display">
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LinguisticsModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LinguisticsModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.1</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">3.1</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.3</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.2</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.4</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.4</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's command line switches</span> <span class="cwebmacronumber">3.5</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.5</span>><span class="character">;</span>
|
||||||
<span class="functiontext">Cardinals::enable_in_word_form</span><span class="plain">();</span>
|
<span class="functiontext">Cardinals::enable_in_word_form</span><span class="plain">();</span>
|
||||||
<span class="functiontext">Articles::mark_for_preform</span><span class="plain">();</span>
|
<span class="functiontext">Articles::mark_for_preform</span><span class="plain">();</span>
|
||||||
<span class="functiontext">Prepositions::mark_for_preform</span><span class="plain">();</span>
|
<span class="functiontext">Prepositions::mark_for_preform</span><span class="plain">();</span>
|
||||||
<span class="functiontext">Diagrams::setup</span><span class="plain">();</span>
|
<span class="functiontext">Diagrams::setup</span><span class="plain">();</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LinguisticsModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
|
<span class="plain">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function LinguisticsModule::start appears nowhere else.</p>
|
<p class="endnote">The function LinguisticsModule::start appears nowhere else.</p>
|
||||||
|
|
||||||
|
<p class="endnote">The function LinguisticsModule::end appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">3.1</span>> =
|
<<span class="cwebmacrodefn">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">3.1</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -142,7 +146,20 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_2"></a><b>§3.2. </b></p>
|
<p class="inwebparagraph"><a id="SP3_2"></a><b>§3.2. </b><code class="display">
|
||||||
|
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">3.2</span>> =
|
||||||
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
<pre class="displaydefn">
|
||||||
|
<span class="plain">;</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"><a id="SP3_3"></a><b>§3.3. </b></p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -152,8 +169,8 @@ foundation module does that automatically.)
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">VERB_USAGES_DA</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">VERB_USAGES_DA</span>
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">VERB_FORMS_DA</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">VERB_FORMS_DA</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP3_3"></a><b>§3.3. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_4"></a><b>§3.4. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.3</span>> =
|
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.4</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -169,8 +186,8 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_4"></a><b>§3.4. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_5"></a><b>§3.5. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.4</span>> =
|
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.5</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -180,27 +197,54 @@ foundation module does that automatically.)
|
||||||
<span class="identifier">Writers::register_logger</span><span class="plain">(</span><span class="character">'p'</span><span class="plain">, </span><span class="functiontext">Prepositions::log</span><span class="plain">);</span>
|
<span class="identifier">Writers::register_logger</span><span class="plain">(</span><span class="character">'p'</span><span class="plain">, </span><span class="functiontext">Prepositions::log</span><span class="plain">);</span>
|
||||||
<span class="identifier">Writers::register_logger</span><span class="plain">(</span><span class="character">'w'</span><span class="plain">, </span><span class="functiontext">Verbs::log_verb</span><span class="plain">);</span>
|
<span class="identifier">Writers::register_logger</span><span class="plain">(</span><span class="character">'w'</span><span class="plain">, </span><span class="functiontext">Verbs::log_verb</span><span class="plain">);</span>
|
||||||
<span class="identifier">Writers::register_logger</span><span class="plain">(</span><span class="character">'y'</span><span class="plain">, </span><span class="functiontext">VerbMeanings::log</span><span class="plain">);</span>
|
<span class="identifier">Writers::register_logger</span><span class="plain">(</span><span class="character">'y'</span><span class="plain">, </span><span class="functiontext">VerbMeanings::log</span><span class="plain">);</span>
|
||||||
|
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_5"></a><b>§3.5. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP4"></a><b>§4. </b>This module uses <code class="display"><span class="extract">syntax</span></code>, and adds the following annotations to the
|
||||||
<<span class="cwebmacrodefn">Register this module's command line switches</span> <span class="cwebmacronumber">3.5</span>> =
|
syntax tree.
|
||||||
</code></p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="displaydefn">
|
<pre class="definitions">
|
||||||
<span class="plain">;</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">meaning_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">excerpt_meaning</span></code>: for leaves</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">verbal_certainty_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: certainty level if known</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">sentence_is_existential_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: such as "there is a man"</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">linguistic_error_here_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: one of the errors occurred here</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">inverted_verb_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: an inversion of subject and object has occurred</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">possessive_verb_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: this is a non-relative use of "to have"</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">verb_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">verb_usage</span></code>: what's being done here</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">preposition_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">preposition_identity</span></code>: which preposition, if any, qualifies it</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">second_preposition_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">preposition_identity</span></code>: which further preposition, if any, qualifies it</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">verb_meaning_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">verb_meaning</span></code>: what it means</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">nounphrase_article_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: definite or indefinite article: see below</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">plural_reference_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: used by PROPER NOUN nodes for evident plurals</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">gender_reference_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: used by PROPER NOUN nodes for evident genders</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">relationship_node_type_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: what kind of inference this assertion makes</span>
|
||||||
|
<span class="definitionkeyword">enum</span> <span class="constant">implicitly_refers_to_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: this will implicitly refer to something</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<pre class="display">
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">meaning</span><span class="plain">, </span><span class="reserved">excerpt_meaning</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">verb</span><span class="plain">, </span><span class="reserved">verb_usage</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">preposition</span><span class="plain">, </span><span class="reserved">preposition_identity</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">second_preposition</span><span class="plain">, </span><span class="reserved">preposition_identity</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="reserved">verb_meaning</span><span class="plain">, </span><span class="reserved">verb_meaning</span><span class="plain">)</span>
|
||||||
|
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">meaning</span><span class="plain">, </span><span class="reserved">excerpt_meaning</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">verb</span><span class="plain">, </span><span class="reserved">verb_usage</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">preposition</span><span class="plain">, </span><span class="reserved">preposition_identity</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">second_preposition</span><span class="plain">, </span><span class="reserved">preposition_identity</span><span class="plain">)</span>
|
||||||
|
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="reserved">verb_meaning</span><span class="plain">, </span><span class="reserved">verb_meaning</span><span class="plain">)</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="inwebparagraph"><a id="SP5"></a><b>§5. </b>This module requires <code class="display"><span class="extract">words</span></code>, which contains the Preform parser. When that
|
||||||
|
initialises, it calls the following routine to improve its performance.
|
||||||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. </b></p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
<pre class="display">
|
||||||
|
@ -216,18 +260,6 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">The function LinguisticsModule::preform_optimiser appears nowhere else.</p>
|
<p class="endnote">The function LinguisticsModule::preform_optimiser appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP5"></a><b>§5. The end. </b></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LinguisticsModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
||||||
<span class="plain">}</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">The function LinguisticsModule::end appears nowhere else.</p>
|
|
||||||
|
|
||||||
<hr class="tocbar">
|
<hr class="tocbar">
|
||||||
<!--End of weave-->
|
<!--End of weave-->
|
||||||
</main>
|
</main>
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
<!--Weave of '2/em' generated by 7-->
|
<!--Weave of '2/em' generated by 7-->
|
||||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">linguistics</a></li><li><a href="index.html#2">Chapter 2: Excerpts</a></li><li><b>Excerpt Meanings</b></li></ul><p class="purpose">To register and deregister meanings for excerpts of text as nouns, adjectives, imperative phrases and other usages.</p>
|
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">linguistics</a></li><li><a href="index.html#2">Chapter 2: Excerpts</a></li><li><b>Excerpt Meanings</b></li></ul><p class="purpose">To register and deregister meanings for excerpts of text as nouns, adjectives, imperative phrases and other usages.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="#SP1">§1. Excerpt meanings</a></li><li><a href="#SP4">§4. Meaning codes</a></li><li><a href="#SP8">§8. Creating EMs</a></li><li><a href="#SP10">§10. Debugging log</a></li><li><a href="#SP11">§11. Hashing excerpts</a></li><li><a href="#SP14">§14. EM Listing</a></li><li><a href="#SP16">§16. Registration</a></li><li><a href="#SP16_3_2">§16.3.2. Meaning from assemblages</a></li></ul><hr class="tocbar">
|
<ul class="toc"><li><a href="#SP1">§1. Excerpt meanings</a></li><li><a href="#SP3">§3. Meaning codes</a></li><li><a href="#SP7">§7. Creating EMs</a></li><li><a href="#SP9">§9. Debugging log</a></li><li><a href="#SP10">§10. Hashing excerpts</a></li><li><a href="#SP13">§13. EM Listing</a></li><li><a href="#SP15">§15. Registration</a></li><li><a href="#SP15_3_2">§15.3.2. Meaning from assemblages</a></li></ul><hr class="tocbar">
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Excerpt meanings. </b>Most compilers keep a "symbols table" of identifier names and what
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Excerpt meanings. </b>Most compilers keep a "symbols table" of identifier names and what
|
||||||
meanings they have: for instance, when compiling Inform, GCC's symbols
|
meanings they have: for instance, when compiling Inform, GCC's symbols
|
||||||
|
@ -143,23 +143,7 @@ generated from its token list, and a pointer to some structure.
|
||||||
|
|
||||||
<p class="endnote">The structure excerpt_meaning is accessed in 2/pe and here.</p>
|
<p class="endnote">The structure excerpt_meaning is accessed in 2/pe and here.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>Annotations:
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. Meaning codes. </b>These assign a context to a meaning, and so decide how the <code class="display"><span class="extract">data</span></code> pointer for
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">meaning_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">excerpt_meaning</span></code>: for leaves</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<pre class="display">
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">meaning</span><span class="plain">, </span><span class="reserved">excerpt_meaning</span><span class="plain">)</span>
|
|
||||||
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">meaning</span><span class="plain">, </span><span class="reserved">excerpt_meaning</span><span class="plain">)</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. Meaning codes. </b>These assign a context to a meaning, and so decide how the <code class="display"><span class="extract">data</span></code> pointer for
|
|
||||||
an excerpt meaning is to interpreted. For instance, "Persian carpet" might
|
an excerpt meaning is to interpreted. For instance, "Persian carpet" might
|
||||||
have a meaning with code <code class="display"><span class="extract">NOUN_MC</span></code>.
|
have a meaning with code <code class="display"><span class="extract">NOUN_MC</span></code>.
|
||||||
</p>
|
</p>
|
||||||
|
@ -172,7 +156,7 @@ representing any subset of these meaning codes; for instance, <code class="displ
|
||||||
</span></code>+ TABLE_MC<code class="display"><span class="extract"> might mean "either a property name or a table name".
|
</span></code>+ TABLE_MC<code class="display"><span class="extract"> might mean "either a property name or a table name".
|
||||||
</span></code></p>
|
</span></code></p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP5"></a><b>§5. </b>The <code class="display"><span class="extract">meaning_code</span></code> field of an <code class="display"><span class="extract">excerpt_meaning</span></code> is always exactly
|
<p class="inwebparagraph"><a id="SP4"></a><b>§4. </b>The <code class="display"><span class="extract">meaning_code</span></code> field of an <code class="display"><span class="extract">excerpt_meaning</span></code> is always exactly
|
||||||
one of the <code class="display"><span class="extract">*_MC</span></code> values. (It is never a bitmap combination.)
|
one of the <code class="display"><span class="extract">*_MC</span></code> values. (It is never a bitmap combination.)
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -182,7 +166,7 @@ one of the <code class="display"><span class="extract">*_MC</span></code> values
|
||||||
<span class="definitionkeyword">define</span> <span class="constant">NOUN_MC</span><span class="plain"> 0</span><span class="identifier">x00000002</span><span class="plain"> </span> <span class="comment">e.g., <code class="display"><span class="extract">upright chair</span></code></span>
|
<span class="definitionkeyword">define</span> <span class="constant">NOUN_MC</span><span class="plain"> 0</span><span class="identifier">x00000002</span><span class="plain"> </span> <span class="comment">e.g., <code class="display"><span class="extract">upright chair</span></code></span>
|
||||||
<span class="definitionkeyword">define</span> <span class="constant">ADJECTIVE_MC</span><span class="plain"> 0</span><span class="identifier">x00000004</span><span class="plain"> </span> <span class="comment">e.g., <code class="display"><span class="extract">invisible</span></code></span>
|
<span class="definitionkeyword">define</span> <span class="constant">ADJECTIVE_MC</span><span class="plain"> 0</span><span class="identifier">x00000004</span><span class="plain"> </span> <span class="comment">e.g., <code class="display"><span class="extract">invisible</span></code></span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP6"></a><b>§6. </b>Each word in our vocabulary will be annotated with this structure:
|
<p class="inwebparagraph"><a id="SP5"></a><b>§5. </b>Each word in our vocabulary will be annotated with this structure:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -205,7 +189,7 @@ one of the <code class="display"><span class="extract">*_MC</span></code> values
|
||||||
|
|
||||||
<p class="endnote">The structure vocabulary_meaning is accessed in 2/pe and here.</p>
|
<p class="endnote">The structure vocabulary_meaning is accessed in 2/pe and here.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP7"></a><b>§7. </b>With the following initialiser:
|
<p class="inwebparagraph"><a id="SP6"></a><b>§6. </b>With the following initialiser:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -229,7 +213,7 @@ one of the <code class="display"><span class="extract">*_MC</span></code> values
|
||||||
|
|
||||||
<p class="endnote">The function ExcerptMeanings::new_meaning appears nowhere else.</p>
|
<p class="endnote">The function ExcerptMeanings::new_meaning appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP8"></a><b>§8. Creating EMs. </b>The following makes a skeletal EM structure, with no token list or hash code
|
<p class="inwebparagraph"><a id="SP7"></a><b>§7. Creating EMs. </b>The following makes a skeletal EM structure, with no token list or hash code
|
||||||
as yet.
|
as yet.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -247,9 +231,9 @@ as yet.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function ExcerptMeanings::new is used in <a href="#SP16">§16</a>, <a href="#SP16_3_2">§16.3.2</a>.</p>
|
<p class="endnote">The function ExcerptMeanings::new is used in <a href="#SP15">§15</a>, <a href="#SP15_3_2">§15.3.2</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP9"></a><b>§9. </b>Access routines:
|
<p class="inwebparagraph"><a id="SP8"></a><b>§8. </b>Access routines:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -263,7 +247,7 @@ as yet.
|
||||||
|
|
||||||
<p class="endnote">The function ExcerptMeanings::data is used in 2/pe (<a href="2-pe.html#SP5">§5</a>), 3/adj (<a href="3-adj.html#SP6">§6</a>), 3/nns (<a href="3-nns.html#SP9">§9</a>).</p>
|
<p class="endnote">The function ExcerptMeanings::data is used in 2/pe (<a href="2-pe.html#SP5">§5</a>), 3/adj (<a href="3-adj.html#SP6">§6</a>), 3/nns (<a href="3-nns.html#SP9">§9</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP10"></a><b>§10. Debugging log. </b>First to log a general bitmap made up from meaning codes:
|
<p class="inwebparagraph"><a id="SP9"></a><b>§9. Debugging log. </b>First to log a general bitmap made up from meaning codes:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -291,11 +275,11 @@ as yet.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function ExcerptMeanings::log is used in 1/lm (<a href="1-lm.html#SP3_4">§3.4</a>).</p>
|
<p class="endnote">The function ExcerptMeanings::log is used in 1/lm (<a href="1-lm.html#SP3_5">§3.5</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function ExcerptMeanings::log_all is used in 2/pe (<a href="2-pe.html#SP6">§6</a>).</p>
|
<p class="endnote">The function ExcerptMeanings::log_all is used in 2/pe (<a href="2-pe.html#SP6">§6</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP11"></a><b>§11. Hashing excerpts. </b>For excerpts <code class="display"><span class="extract">(w1, w2)</span></code>, we need a form of hash function which makes it
|
<p class="inwebparagraph"><a id="SP10"></a><b>§10. Hashing excerpts. </b>For excerpts <code class="display"><span class="extract">(w1, w2)</span></code>, we need a form of hash function which makes it
|
||||||
easy to test whether the words in one excerpt can all be found in another,
|
easy to test whether the words in one excerpt can all be found in another,
|
||||||
or to be more exact whether
|
or to be more exact whether
|
||||||
</p>
|
</p>
|
||||||
|
@ -310,7 +294,7 @@ away a lot of information. And we also want a hash function which makes it
|
||||||
easy to test whether an excerpt contains any of the literals.
|
easy to test whether an excerpt contains any of the literals.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP12"></a><b>§12. </b>There are two sources of text which we might want to hash in this way:
|
<p class="inwebparagraph"><a id="SP11"></a><b>§11. </b>There are two sources of text which we might want to hash in this way:
|
||||||
first, actual excerpts found in the source text. These are not very
|
first, actual excerpts found in the source text. These are not very
|
||||||
expensive to calculate, but every ounce of speed helps here, so we cache
|
expensive to calculate, but every ounce of speed helps here, so we cache
|
||||||
the most recent.
|
the most recent.
|
||||||
|
@ -331,7 +315,7 @@ bits 31 and 32 left clear.
|
||||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">w1</span><span class="plain"> == </span><span class="identifier">cached_hash_w1</span><span class="plain">) && (</span><span class="identifier">w2</span><span class="plain"> == </span><span class="identifier">cached_hash_w2</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">cached_value</span><span class="plain">;</span>
|
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">w1</span><span class="plain"> == </span><span class="identifier">cached_hash_w1</span><span class="plain">) && (</span><span class="identifier">w2</span><span class="plain"> == </span><span class="identifier">cached_hash_w2</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">cached_value</span><span class="plain">;</span>
|
||||||
<span class="reserved">for</span><span class="plain"> (</span><span class="identifier">i</span><span class="plain">=</span><span class="identifier">w1</span><span class="plain">; </span><span class="identifier">i</span><span class="plain"><=</span><span class="identifier">w2</span><span class="plain">; </span><span class="identifier">i</span><span class="plain">++) {</span>
|
<span class="reserved">for</span><span class="plain"> (</span><span class="identifier">i</span><span class="plain">=</span><span class="identifier">w1</span><span class="plain">; </span><span class="identifier">i</span><span class="plain"><=</span><span class="identifier">w2</span><span class="plain">; </span><span class="identifier">i</span><span class="plain">++) {</span>
|
||||||
<span class="identifier">v</span><span class="plain"> = </span><span class="identifier">Lexer::word</span><span class="plain">(</span><span class="identifier">i</span><span class="plain">);</span>
|
<span class="identifier">v</span><span class="plain"> = </span><span class="identifier">Lexer::word</span><span class="plain">(</span><span class="identifier">i</span><span class="plain">);</span>
|
||||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">v</span><span class="plain">) </span><<span class="cwebmacro">Allow this vocabulary entry to contribute to the excerpt's hash code</span> <span class="cwebmacronumber">12.2</span>><span class="character">;</span>
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">v</span><span class="plain">) </span><<span class="cwebmacro">Allow this vocabulary entry to contribute to the excerpt's hash code</span> <span class="cwebmacronumber">11.2</span>><span class="character">;</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">h</span><span class="plain">;</span>
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">h</span><span class="plain">;</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
|
@ -341,7 +325,7 @@ bits 31 and 32 left clear.
|
||||||
|
|
||||||
<p class="endnote">The function ExcerptMeanings::hash_code is used in 2/pe (<a href="2-pe.html#SP4">§4</a>).</p>
|
<p class="endnote">The function ExcerptMeanings::hash_code is used in 2/pe (<a href="2-pe.html#SP4">§4</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP12_1"></a><b>§12.1. </b>Second, when a new excerpt meaning is to be registered, we want to hash
|
<p class="inwebparagraph"><a id="SP11_1"></a><b>§11.1. </b>Second, when a new excerpt meaning is to be registered, we want to hash
|
||||||
code its token list. But only some of the tokens are vocabulary entries,
|
code its token list. But only some of the tokens are vocabulary entries,
|
||||||
while others instead represent gaps where arbitrary text can appear (referred
|
while others instead represent gaps where arbitrary text can appear (referred
|
||||||
to with a null pointer). Note that we simply ignore that gaps when hashing,
|
to with a null pointer). Note that we simply ignore that gaps when hashing,
|
||||||
|
@ -375,7 +359,7 @@ same meaning as in the first case above.)
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
<span class="reserved">for</span><span class="plain"> (</span><span class="identifier">i</span><span class="plain">=0; </span><span class="identifier">i</span><span class="plain"><</span><span class="identifier">em</span><span class="plain">-</span><span class="element">>no_em_tokens</span><span class="plain">; </span><span class="identifier">i</span><span class="plain">++) {</span>
|
<span class="reserved">for</span><span class="plain"> (</span><span class="identifier">i</span><span class="plain">=0; </span><span class="identifier">i</span><span class="plain"><</span><span class="identifier">em</span><span class="plain">-</span><span class="element">>no_em_tokens</span><span class="plain">; </span><span class="identifier">i</span><span class="plain">++) {</span>
|
||||||
<span class="identifier">vocabulary_entry</span><span class="plain"> *</span><span class="identifier">v</span><span class="plain"> = </span><span class="identifier">em</span><span class="plain">-</span><span class="element">>em_tokens</span><span class="plain">[</span><span class="identifier">i</span><span class="plain">];</span>
|
<span class="identifier">vocabulary_entry</span><span class="plain"> *</span><span class="identifier">v</span><span class="plain"> = </span><span class="identifier">em</span><span class="plain">-</span><span class="element">>em_tokens</span><span class="plain">[</span><span class="identifier">i</span><span class="plain">];</span>
|
||||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">v</span><span class="plain">) </span><<span class="cwebmacro">Allow this vocabulary entry to contribute to the excerpt's hash code</span> <span class="cwebmacronumber">12.2</span>><span class="character">;</span>
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">v</span><span class="plain">) </span><<span class="cwebmacro">Allow this vocabulary entry to contribute to the excerpt's hash code</span> <span class="cwebmacronumber">11.2</span>><span class="character">;</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
<span class="identifier">em</span><span class="plain">-</span><span class="element">>excerpt_hash</span><span class="plain"> = </span><span class="identifier">h</span><span class="plain">;</span>
|
<span class="identifier">em</span><span class="plain">-</span><span class="element">>excerpt_hash</span><span class="plain"> = </span><span class="identifier">h</span><span class="plain">;</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
|
@ -383,9 +367,9 @@ same meaning as in the first case above.)
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function ExcerptMeanings::hash_code_from_token_list is used in <a href="#SP14_1">§14.1</a>.</p>
|
<p class="endnote">The function ExcerptMeanings::hash_code_from_token_list is used in <a href="#SP13_1">§13.1</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP12_2"></a><b>§12.2. </b>Now each vocabulary entry <code class="display"><span class="extract">v</span></code>, i.e., each distinct word identity, itself has
|
<p class="inwebparagraph"><a id="SP11_2"></a><b>§11.2. </b>Now each vocabulary entry <code class="display"><span class="extract">v</span></code>, i.e., each distinct word identity, itself has
|
||||||
a hash code to identify it. These are stored in <code class="display"><span class="extract">v->hash</span></code> and, except for
|
a hash code to identify it. These are stored in <code class="display"><span class="extract">v->hash</span></code> and, except for
|
||||||
literals, are more or less evenly distributed in about the range 0 to 1000.
|
literals, are more or less evenly distributed in about the range 0 to 1000.
|
||||||
</p>
|
</p>
|
||||||
|
@ -396,7 +380,7 @@ for the whole excerpt is as follows.
|
||||||
|
|
||||||
|
|
||||||
<p class="macrodefinition"><code class="display">
|
<p class="macrodefinition"><code class="display">
|
||||||
<<span class="cwebmacrodefn">Allow this vocabulary entry to contribute to the excerpt's hash code</span> <span class="cwebmacronumber">12.2</span>> =
|
<<span class="cwebmacrodefn">Allow this vocabulary entry to contribute to the excerpt's hash code</span> <span class="cwebmacronumber">11.2</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -409,9 +393,9 @@ for the whole excerpt is as follows.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP12">§12</a>, <a href="#SP12_1">§12.1</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP11">§11</a>, <a href="#SP11_1">§11.1</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP13"></a><b>§13. </b>To sum up: the excerpt hash is a bitmap indicating what categories of
|
<p class="inwebparagraph"><a id="SP12"></a><b>§12. </b>To sum up: the excerpt hash is a bitmap indicating what categories of
|
||||||
words are present in the excerpt. It ignores "gaps" in token lists, and
|
words are present in the excerpt. It ignores "gaps" in token lists, and
|
||||||
it ignores the order of the words and repetitions. The three least
|
it ignores the order of the words and repetitions. The three least
|
||||||
significant bits indicate whether numbers, text or I6 verbatims are
|
significant bits indicate whether numbers, text or I6 verbatims are
|
||||||
|
@ -430,7 +414,7 @@ thought. But it is optimised for the trickiest parsing cases where the
|
||||||
rewards of saving unnecessary tests are greatest.
|
rewards of saving unnecessary tests are greatest.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP14"></a><b>§14. EM Listing. </b>We are clearly not going to store the excerpt meanings in a hash table
|
<p class="inwebparagraph"><a id="SP13"></a><b>§13. EM Listing. </b>We are clearly not going to store the excerpt meanings in a hash table
|
||||||
keyed by the hash values of excerpts — with hash values as large as
|
keyed by the hash values of excerpts — with hash values as large as
|
||||||
2^{31}-1, that would be practically impossible.
|
2^{31}-1, that would be practically impossible.
|
||||||
</p>
|
</p>
|
||||||
|
@ -491,30 +475,30 @@ resort; happily phrases both starting and ending with <code class="display"><spa
|
||||||
<span class="identifier">ExParser::warn_expression_cache</span><span class="plain">(); </span> <span class="comment">the existence of new meanings jeopardises any cached parsing results</span>
|
<span class="identifier">ExParser::warn_expression_cache</span><span class="plain">(); </span> <span class="comment">the existence of new meanings jeopardises any cached parsing results</span>
|
||||||
<span class="plain">#</span><span class="identifier">endif</span>
|
<span class="plain">#</span><span class="identifier">endif</span>
|
||||||
|
|
||||||
<<span class="cwebmacro">Compute the new excerpt's hash code from its token list</span> <span class="cwebmacronumber">14.1</span>><span class="character">;</span>
|
<<span class="cwebmacro">Compute the new excerpt's hash code from its token list</span> <span class="cwebmacronumber">13.1</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Watermark each word in the token list with the meaning code being applied</span> <span class="cwebmacronumber">14.2</span>><span class="plain">;</span>
|
<<span class="cwebmacro">Watermark each word in the token list with the meaning code being applied</span> <span class="cwebmacronumber">13.2</span>><span class="plain">;</span>
|
||||||
|
|
||||||
<span class="identifier">LOGIF</span><span class="plain">(</span><span class="identifier">EXCERPT_MEANINGS</span><span class="plain">,</span>
|
<span class="identifier">LOGIF</span><span class="plain">(</span><span class="identifier">EXCERPT_MEANINGS</span><span class="plain">,</span>
|
||||||
<span class="string">"Logging meaning: $M with hash %08x, mc=%d, %d tokens\</span><span class="plain">n</span><span class="string">"</span><span class="plain">,</span>
|
<span class="string">"Logging meaning: $M with hash %08x, mc=%d, %d tokens\</span><span class="plain">n</span><span class="string">"</span><span class="plain">,</span>
|
||||||
<span class="identifier">em</span><span class="plain">, </span><span class="identifier">em</span><span class="plain">-</span><span class="element">>excerpt_hash</span><span class="plain">, </span><span class="identifier">meaning_code</span><span class="plain">, </span><span class="identifier">em</span><span class="plain">-</span><span class="element">>no_em_tokens</span><span class="plain">);</span>
|
<span class="identifier">em</span><span class="plain">, </span><span class="identifier">em</span><span class="plain">-</span><span class="element">>excerpt_hash</span><span class="plain">, </span><span class="identifier">meaning_code</span><span class="plain">, </span><span class="identifier">em</span><span class="plain">-</span><span class="element">>no_em_tokens</span><span class="plain">);</span>
|
||||||
|
|
||||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">meaning_code</span><span class="plain"> & </span><span class="identifier">SUBSET_PARSING_BITMAP</span><span class="plain">) {</span>
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">meaning_code</span><span class="plain"> & </span><span class="identifier">SUBSET_PARSING_BITMAP</span><span class="plain">) {</span>
|
||||||
<<span class="cwebmacro">Place the new meaning under the subset list for each non-article word</span> <span class="cwebmacronumber">14.3</span>><span class="plain">;</span>
|
<<span class="cwebmacro">Place the new meaning under the subset list for each non-article word</span> <span class="cwebmacronumber">13.3</span>><span class="plain">;</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
<span class="plain">#</span><span class="identifier">ifdef</span><span class="plain"> </span><span class="identifier">EM_ALLOW_BLANK_TEST</span>
|
<span class="plain">#</span><span class="identifier">ifdef</span><span class="plain"> </span><span class="identifier">EM_ALLOW_BLANK_TEST</span>
|
||||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">em</span><span class="plain">-</span><span class="element">>no_em_tokens</span><span class="plain"> == 1) && (</span><span class="identifier">em</span><span class="plain">-</span><span class="element">>em_tokens</span><span class="plain">[0] == </span><span class="identifier">NULL</span><span class="plain">) &&</span>
|
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">em</span><span class="plain">-</span><span class="element">>no_em_tokens</span><span class="plain"> == 1) && (</span><span class="identifier">em</span><span class="plain">-</span><span class="element">>em_tokens</span><span class="plain">[0] == </span><span class="identifier">NULL</span><span class="plain">) &&</span>
|
||||||
<span class="plain">(</span><span class="identifier">EM_ALLOW_BLANK_TEST</span><span class="plain">(</span><span class="identifier">meaning_code</span><span class="plain">))) {</span>
|
<span class="plain">(</span><span class="identifier">EM_ALLOW_BLANK_TEST</span><span class="plain">(</span><span class="identifier">meaning_code</span><span class="plain">))) {</span>
|
||||||
<<span class="cwebmacro">Place the new meaning under the say-blank list</span> <span class="cwebmacronumber">14.4</span>><span class="plain">;</span>
|
<<span class="cwebmacro">Place the new meaning under the say-blank list</span> <span class="cwebmacronumber">13.4</span>><span class="plain">;</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
<span class="plain">#</span><span class="identifier">endif</span>
|
<span class="plain">#</span><span class="identifier">endif</span>
|
||||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">em</span><span class="plain">-</span><span class="element">>em_tokens</span><span class="plain">[0]) {</span>
|
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">em</span><span class="plain">-</span><span class="element">>em_tokens</span><span class="plain">[0]) {</span>
|
||||||
<<span class="cwebmacro">Place the new meaning under the start list of the first word</span> <span class="cwebmacronumber">14.5</span>><span class="plain">;</span>
|
<<span class="cwebmacro">Place the new meaning under the start list of the first word</span> <span class="cwebmacronumber">13.5</span>><span class="plain">;</span>
|
||||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">em</span><span class="plain">-</span><span class="element">>em_tokens</span><span class="plain">[</span><span class="identifier">em</span><span class="plain">-</span><span class="element">>no_em_tokens</span><span class="plain">-1]) {</span>
|
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">em</span><span class="plain">-</span><span class="element">>em_tokens</span><span class="plain">[</span><span class="identifier">em</span><span class="plain">-</span><span class="element">>no_em_tokens</span><span class="plain">-1]) {</span>
|
||||||
<<span class="cwebmacro">Place the new meaning under the end list of the last word</span> <span class="cwebmacronumber">14.6</span>><span class="plain">;</span>
|
<<span class="cwebmacro">Place the new meaning under the end list of the last word</span> <span class="cwebmacronumber">13.6</span>><span class="plain">;</span>
|
||||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
|
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
|
||||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">;</span>
|
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">;</span>
|
||||||
<span class="reserved">for</span><span class="plain"> (</span><span class="identifier">i</span><span class="plain">=1; </span><span class="identifier">i</span><span class="plain"><</span><span class="identifier">em</span><span class="plain">-</span><span class="element">>no_em_tokens</span><span class="plain">-1; </span><span class="identifier">i</span><span class="plain">++)</span>
|
<span class="reserved">for</span><span class="plain"> (</span><span class="identifier">i</span><span class="plain">=1; </span><span class="identifier">i</span><span class="plain"><</span><span class="identifier">em</span><span class="plain">-</span><span class="element">>no_em_tokens</span><span class="plain">-1; </span><span class="identifier">i</span><span class="plain">++)</span>
|
||||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">em</span><span class="plain">-</span><span class="element">>em_tokens</span><span class="plain">[</span><span class="identifier">i</span><span class="plain">]) { </span><<span class="cwebmacro">Place the new meaning under the middle list of word i</span> <span class="cwebmacronumber">14.7</span>><span class="plain">; </span><span class="reserved">break</span><span class="plain">; }</span>
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">em</span><span class="plain">-</span><span class="element">>em_tokens</span><span class="plain">[</span><span class="identifier">i</span><span class="plain">]) { </span><<span class="cwebmacro">Place the new meaning under the middle list of word i</span> <span class="cwebmacronumber">13.7</span>><span class="plain">; </span><span class="reserved">break</span><span class="plain">; }</span>
|
||||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">i</span><span class="plain"> >= </span><span class="identifier">em</span><span class="plain">-</span><span class="element">>no_em_tokens</span><span class="plain">-1) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"registered meaning of two or more #s"</span><span class="plain">);</span>
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">i</span><span class="plain"> >= </span><span class="identifier">em</span><span class="plain">-</span><span class="element">>no_em_tokens</span><span class="plain">-1) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"registered meaning of two or more #s"</span><span class="plain">);</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
|
@ -522,14 +506,14 @@ resort; happily phrases both starting and ending with <code class="display"><spa
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function ExcerptMeanings::register_em is used in <a href="#SP16">§16</a>, <a href="#SP16_3_2">§16.3.2</a>.</p>
|
<p class="endnote">The function ExcerptMeanings::register_em is used in <a href="#SP15">§15</a>, <a href="#SP15_3_2">§15.3.2</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP14_1"></a><b>§14.1. </b>See above.
|
<p class="inwebparagraph"><a id="SP13_1"></a><b>§13.1. </b>See above.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<p class="macrodefinition"><code class="display">
|
<p class="macrodefinition"><code class="display">
|
||||||
<<span class="cwebmacrodefn">Compute the new excerpt's hash code from its token list</span> <span class="cwebmacronumber">14.1</span>> =
|
<<span class="cwebmacrodefn">Compute the new excerpt's hash code from its token list</span> <span class="cwebmacronumber">13.1</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -539,9 +523,9 @@ resort; happily phrases both starting and ending with <code class="display"><spa
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP14">§14</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP13">§13</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP14_2"></a><b>§14.2. </b>Another important optimisation is to flag each word in the meaning with
|
<p class="inwebparagraph"><a id="SP13_2"></a><b>§13.2. </b>Another important optimisation is to flag each word in the meaning with
|
||||||
the given meaning code — this is why vocabulary flags and excerpt meaning
|
the given meaning code — this is why vocabulary flags and excerpt meaning
|
||||||
codes share the same numbering space. If we register "Table of Surgical
|
codes share the same numbering space. If we register "Table of Surgical
|
||||||
Instruments" as a table name, the word "surgical", for instance, picks
|
Instruments" as a table name, the word "surgical", for instance, picks
|
||||||
|
@ -558,7 +542,7 @@ positives.
|
||||||
|
|
||||||
|
|
||||||
<p class="macrodefinition"><code class="display">
|
<p class="macrodefinition"><code class="display">
|
||||||
<<span class="cwebmacrodefn">Watermark each word in the token list with the meaning code being applied</span> <span class="cwebmacronumber">14.2</span>> =
|
<<span class="cwebmacrodefn">Watermark each word in the token list with the meaning code being applied</span> <span class="cwebmacronumber">13.2</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -571,16 +555,16 @@ positives.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP14">§14</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP13">§13</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP14_3"></a><b>§14.3. </b>Note that articles (a, an, the, some) are excluded: this means we don't
|
<p class="inwebparagraph"><a id="SP13_3"></a><b>§13.3. </b>Note that articles (a, an, the, some) are excluded: this means we don't
|
||||||
waste time trying to see if the excerpt "the" might be a reference to the
|
waste time trying to see if the excerpt "the" might be a reference to the
|
||||||
object "Gregory the Great".
|
object "Gregory the Great".
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<p class="macrodefinition"><code class="display">
|
<p class="macrodefinition"><code class="display">
|
||||||
<<span class="cwebmacrodefn">Place the new meaning under the subset list for each non-article word</span> <span class="cwebmacronumber">14.3</span>> =
|
<<span class="cwebmacrodefn">Place the new meaning under the subset list for each non-article word</span> <span class="cwebmacronumber">13.3</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -602,15 +586,15 @@ object "Gregory the Great".
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP14">§14</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP13">§13</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP14_4"></a><b>§14.4. </b>To register <code class="display"><span class="extract">#</span></code>, which is what "To say (N - a number)" and similar
|
<p class="inwebparagraph"><a id="SP13_4"></a><b>§13.4. </b>To register <code class="display"><span class="extract">#</span></code>, which is what "To say (N - a number)" and similar
|
||||||
constructions translate to.
|
constructions translate to.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<p class="macrodefinition"><code class="display">
|
<p class="macrodefinition"><code class="display">
|
||||||
<<span class="cwebmacrodefn">Place the new meaning under the say-blank list</span> <span class="cwebmacronumber">14.4</span>> =
|
<<span class="cwebmacrodefn">Place the new meaning under the say-blank list</span> <span class="cwebmacronumber">13.4</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -628,10 +612,10 @@ constructions translate to.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP14">§14</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP13">§13</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP14_5"></a><b>§14.5. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP13_5"></a><b>§13.5. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Place the new meaning under the start list of the first word</span> <span class="cwebmacronumber">14.5</span>> =
|
<<span class="cwebmacrodefn">Place the new meaning under the start list of the first word</span> <span class="cwebmacronumber">13.5</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -643,14 +627,14 @@ constructions translate to.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP14">§14</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP13">§13</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP14_6"></a><b>§14.6. </b>...and similarly...
|
<p class="inwebparagraph"><a id="SP13_6"></a><b>§13.6. </b>...and similarly...
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<p class="macrodefinition"><code class="display">
|
<p class="macrodefinition"><code class="display">
|
||||||
<<span class="cwebmacrodefn">Place the new meaning under the end list of the last word</span> <span class="cwebmacronumber">14.6</span>> =
|
<<span class="cwebmacrodefn">Place the new meaning under the end list of the last word</span> <span class="cwebmacronumber">13.6</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -662,14 +646,14 @@ constructions translate to.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP14">§14</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP13">§13</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP14_7"></a><b>§14.7. </b>...and similarly again:
|
<p class="inwebparagraph"><a id="SP13_7"></a><b>§13.7. </b>...and similarly again:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<p class="macrodefinition"><code class="display">
|
<p class="macrodefinition"><code class="display">
|
||||||
<<span class="cwebmacrodefn">Place the new meaning under the middle list of word i</span> <span class="cwebmacronumber">14.7</span>> =
|
<<span class="cwebmacrodefn">Place the new meaning under the middle list of word i</span> <span class="cwebmacronumber">13.7</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -681,9 +665,9 @@ constructions translate to.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP14">§14</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP13">§13</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP15"></a><b>§15. </b>Parse nodes are only created from excerpt meanings for storage inside the
|
<p class="inwebparagraph"><a id="SP14"></a><b>§14. </b>Parse nodes are only created from excerpt meanings for storage inside the
|
||||||
excerpt parser, so these never live on into trees.
|
excerpt parser, so these never live on into trees.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -698,9 +682,9 @@ excerpt parser, so these never live on into trees.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function ExcerptMeanings::new_em_pnode is used in <a href="#SP14_3">§14.3</a>, <a href="#SP14_4">§14.4</a>, <a href="#SP14_5">§14.5</a>, <a href="#SP14_6">§14.6</a>, <a href="#SP14_7">§14.7</a>.</p>
|
<p class="endnote">The function ExcerptMeanings::new_em_pnode is used in <a href="#SP13_3">§13.3</a>, <a href="#SP13_4">§13.4</a>, <a href="#SP13_5">§13.5</a>, <a href="#SP13_6">§13.6</a>, <a href="#SP13_7">§13.7</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP16"></a><b>§16. Registration. </b>The following is the main routine used throughout Inform to register new
|
<p class="inwebparagraph"><a id="SP15"></a><b>§15. Registration. </b>The following is the main routine used throughout Inform to register new
|
||||||
meanings.
|
meanings.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -721,14 +705,14 @@ meanings.
|
||||||
|
|
||||||
<span class="reserved">excerpt_meaning</span><span class="plain"> *</span><span class="identifier">em</span><span class="plain"> = </span><span class="functiontext">ExcerptMeanings::new</span><span class="plain">(</span><span class="identifier">meaning_code</span><span class="plain">, </span><span class="identifier">data</span><span class="plain">);</span>
|
<span class="reserved">excerpt_meaning</span><span class="plain"> *</span><span class="identifier">em</span><span class="plain"> = </span><span class="functiontext">ExcerptMeanings::new</span><span class="plain">(</span><span class="identifier">meaning_code</span><span class="plain">, </span><span class="identifier">data</span><span class="plain">);</span>
|
||||||
|
|
||||||
<<span class="cwebmacro">Unless this is parametrised, skip any initial article</span> <span class="cwebmacronumber">16.1</span>><span class="plain">;</span>
|
<<span class="cwebmacro">Unless this is parametrised, skip any initial article</span> <span class="cwebmacronumber">15.1</span>><span class="plain">;</span>
|
||||||
|
|
||||||
<span class="plain">#</span><span class="identifier">ifdef</span><span class="plain"> </span><span class="identifier">EM_CASE_SENSITIVITY_TEST</span>
|
<span class="plain">#</span><span class="identifier">ifdef</span><span class="plain"> </span><span class="identifier">EM_CASE_SENSITIVITY_TEST</span>
|
||||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">EM_CASE_SENSITIVITY_TEST</span><span class="plain">(</span><span class="identifier">meaning_code</span><span class="plain">))</span>
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">EM_CASE_SENSITIVITY_TEST</span><span class="plain">(</span><span class="identifier">meaning_code</span><span class="plain">))</span>
|
||||||
<<span class="cwebmacro">Detect use of upper case on the first word of this new text substitution</span> <span class="cwebmacronumber">16.2</span>><span class="plain">;</span>
|
<<span class="cwebmacro">Detect use of upper case on the first word of this new text substitution</span> <span class="cwebmacronumber">15.2</span>><span class="plain">;</span>
|
||||||
<span class="plain">#</span><span class="identifier">endif</span>
|
<span class="plain">#</span><span class="identifier">endif</span>
|
||||||
|
|
||||||
<<span class="cwebmacro">Build the token list for the new EM</span> <span class="cwebmacronumber">16.3</span>><span class="plain">;</span>
|
<<span class="cwebmacro">Build the token list for the new EM</span> <span class="cwebmacronumber">15.3</span>><span class="plain">;</span>
|
||||||
|
|
||||||
<span class="functiontext">ExcerptMeanings::register_em</span><span class="plain">(</span><span class="identifier">meaning_code</span><span class="plain">, </span><span class="identifier">em</span><span class="plain">);</span>
|
<span class="functiontext">ExcerptMeanings::register_em</span><span class="plain">(</span><span class="identifier">meaning_code</span><span class="plain">, </span><span class="identifier">em</span><span class="plain">);</span>
|
||||||
<span class="plain">#</span><span class="identifier">ifdef</span><span class="plain"> </span><span class="identifier">IF_MODULE</span>
|
<span class="plain">#</span><span class="identifier">ifdef</span><span class="plain"> </span><span class="identifier">IF_MODULE</span>
|
||||||
|
@ -744,14 +728,14 @@ meanings.
|
||||||
|
|
||||||
<p class="endnote">The function ExcerptMeanings::register is used in 3/adj (<a href="3-adj.html#SP4">§4</a>), 3/nns (<a href="3-nns.html#SP4">§4</a>).</p>
|
<p class="endnote">The function ExcerptMeanings::register is used in 3/adj (<a href="3-adj.html#SP4">§4</a>), 3/nns (<a href="3-nns.html#SP4">§4</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP16_1"></a><b>§16.1. </b>Articles are preserved at the front of phrase definitions, mainly because
|
<p class="inwebparagraph"><a id="SP15_1"></a><b>§15.1. </b>Articles are preserved at the front of phrase definitions, mainly because
|
||||||
text substitutions need to distinguish (for instance) "say [the X]" from
|
text substitutions need to distinguish (for instance) "say [the X]" from
|
||||||
"say [an X]".
|
"say [an X]".
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<p class="macrodefinition"><code class="display">
|
<p class="macrodefinition"><code class="display">
|
||||||
<<span class="cwebmacrodefn">Unless this is parametrised, skip any initial article</span> <span class="cwebmacronumber">16.1</span>> =
|
<<span class="cwebmacrodefn">Unless this is parametrised, skip any initial article</span> <span class="cwebmacronumber">15.1</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -766,9 +750,9 @@ text substitutions need to distinguish (for instance) "say [the X]" from
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP16">§16</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP15">§15</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP16_2"></a><b>§16.2. </b>Because an open bracket fails <code class="display"><span class="extract">isupper</span></code>, the following looks at the first
|
<p class="inwebparagraph"><a id="SP15_2"></a><b>§15.2. </b>Because an open bracket fails <code class="display"><span class="extract">isupper</span></code>, the following looks at the first
|
||||||
letter of the first word only if it's not a blank. If it finds upper case, as
|
letter of the first word only if it's not a blank. If it finds upper case, as
|
||||||
it would when reading the "T" in:
|
it would when reading the "T" in:
|
||||||
</p>
|
</p>
|
||||||
|
@ -795,7 +779,7 @@ sensitivity.)
|
||||||
|
|
||||||
|
|
||||||
<p class="macrodefinition"><code class="display">
|
<p class="macrodefinition"><code class="display">
|
||||||
<<span class="cwebmacrodefn">Detect use of upper case on the first word of this new text substitution</span> <span class="cwebmacronumber">16.2</span>> =
|
<<span class="cwebmacrodefn">Detect use of upper case on the first word of this new text substitution</span> <span class="cwebmacronumber">15.2</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -813,9 +797,9 @@ sensitivity.)
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP16">§16</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP15">§15</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP16_3"></a><b>§16.3. </b>We read the text in something like:
|
<p class="inwebparagraph"><a id="SP15_3"></a><b>§15.3. </b>We read the text in something like:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<blockquote>
|
<blockquote>
|
||||||
|
@ -839,7 +823,7 @@ tokens denoting gaps, to result in something like:
|
||||||
|
|
||||||
|
|
||||||
<p class="macrodefinition"><code class="display">
|
<p class="macrodefinition"><code class="display">
|
||||||
<<span class="cwebmacrodefn">Build the token list for the new EM</span> <span class="cwebmacronumber">16.3</span>> =
|
<<span class="cwebmacrodefn">Build the token list for the new EM</span> <span class="cwebmacronumber">15.3</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -847,12 +831,12 @@ tokens denoting gaps, to result in something like:
|
||||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">tc</span><span class="plain"> = 0;</span>
|
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">tc</span><span class="plain"> = 0;</span>
|
||||||
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">=0; </span><span class="identifier">i</span><span class="plain"> < </span><span class="identifier">Wordings::length</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">); </span><span class="identifier">i</span><span class="plain">++) {</span>
|
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">=0; </span><span class="identifier">i</span><span class="plain"> < </span><span class="identifier">Wordings::length</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">); </span><span class="identifier">i</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="constant">MAX_TOKENS_PER_EXCERPT_MEANING</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="constant">MAX_TOKENS_PER_EXCERPT_MEANING</span><span class="plain">) {</span>
|
||||||
<<span class="cwebmacro">Complain of excessive length of the new excerpt</span> <span class="cwebmacronumber">16.3.3</span>><span class="plain">;</span>
|
<<span class="cwebmacro">Complain of excessive length of the new excerpt</span> <span class="cwebmacronumber">15.3.3</span>><span class="plain">;</span>
|
||||||
<span class="reserved">break</span><span class="plain">;</span>
|
<span class="reserved">break</span><span class="plain">;</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">compare_word</span><span class="plain">(</span><span class="identifier">Wordings::first_wn</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">) + </span><span class="identifier">i</span><span class="plain">, </span><span class="identifier">OPENBRACKET_V</span><span class="plain">)) {</span>
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">compare_word</span><span class="plain">(</span><span class="identifier">Wordings::first_wn</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">) + </span><span class="identifier">i</span><span class="plain">, </span><span class="identifier">OPENBRACKET_V</span><span class="plain">)) {</span>
|
||||||
<span class="identifier">em</span><span class="plain">-</span><span class="element">>em_tokens</span><span class="plain">[</span><span class="identifier">tc</span><span class="plain">++] = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
<span class="identifier">em</span><span class="plain">-</span><span class="element">>em_tokens</span><span class="plain">[</span><span class="identifier">tc</span><span class="plain">++] = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||||
<<span class="cwebmacro">Skip over bracketed token description</span> <span class="cwebmacronumber">16.3.1</span>><span class="plain">;</span>
|
<<span class="cwebmacro">Skip over bracketed token description</span> <span class="cwebmacronumber">15.3.1</span>><span class="plain">;</span>
|
||||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="identifier">em</span><span class="plain">-</span><span class="element">>em_tokens</span><span class="plain">[</span><span class="identifier">tc</span><span class="plain">++] = </span><span class="identifier">Lexer::word</span><span class="plain">(</span><span class="identifier">Wordings::first_wn</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">) + </span><span class="identifier">i</span><span class="plain">);</span>
|
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="identifier">em</span><span class="plain">-</span><span class="element">>em_tokens</span><span class="plain">[</span><span class="identifier">tc</span><span class="plain">++] = </span><span class="identifier">Lexer::word</span><span class="plain">(</span><span class="identifier">Wordings::first_wn</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">) + </span><span class="identifier">i</span><span class="plain">);</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
<span class="identifier">em</span><span class="plain">-</span><span class="element">>no_em_tokens</span><span class="plain"> = </span><span class="identifier">tc</span><span class="plain">;</span>
|
<span class="identifier">em</span><span class="plain">-</span><span class="element">>no_em_tokens</span><span class="plain"> = </span><span class="identifier">tc</span><span class="plain">;</span>
|
||||||
|
@ -860,15 +844,15 @@ tokens denoting gaps, to result in something like:
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP16">§16</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP15">§15</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP16_3_1"></a><b>§16.3.1. </b>This is all a little defensive, but syntax bugs higher up tend to find
|
<p class="inwebparagraph"><a id="SP15_3_1"></a><b>§15.3.1. </b>This is all a little defensive, but syntax bugs higher up tend to find
|
||||||
their way down to this plughole:
|
their way down to this plughole:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<p class="macrodefinition"><code class="display">
|
<p class="macrodefinition"><code class="display">
|
||||||
<<span class="cwebmacrodefn">Skip over bracketed token description</span> <span class="cwebmacronumber">16.3.1</span>> =
|
<<span class="cwebmacrodefn">Skip over bracketed token description</span> <span class="cwebmacronumber">15.3.1</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -892,9 +876,9 @@ their way down to this plughole:
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP16_3">§16.3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP15_3">§15.3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP16_3_2"></a><b>§16.3.2. Meaning from assemblages. </b>In a few cases it is convenient to register a meaning from a wording which
|
<p class="inwebparagraph"><a id="SP15_3_2"></a><b>§15.3.2. Meaning from assemblages. </b>In a few cases it is convenient to register a meaning from a wording which
|
||||||
isn't contiguously present in the lexer, so we also provide a method for
|
isn't contiguously present in the lexer, so we also provide a method for
|
||||||
taking it from a word assemblage.
|
taking it from a word assemblage.
|
||||||
</p>
|
</p>
|
||||||
|
@ -915,7 +899,7 @@ token lists with gaps in.
|
||||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">, </span><span class="identifier">tc</span><span class="plain"> = 0;</span>
|
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">, </span><span class="identifier">tc</span><span class="plain"> = 0;</span>
|
||||||
<span class="reserved">for</span><span class="plain"> (</span><span class="identifier">i</span><span class="plain">=0; </span><span class="identifier">i</span><span class="plain"><</span><span class="identifier">len</span><span class="plain">; </span><span class="identifier">i</span><span class="plain">++) {</span>
|
<span class="reserved">for</span><span class="plain"> (</span><span class="identifier">i</span><span class="plain">=0; </span><span class="identifier">i</span><span class="plain"><</span><span class="identifier">len</span><span class="plain">; </span><span class="identifier">i</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="constant">MAX_TOKENS_PER_EXCERPT_MEANING</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="constant">MAX_TOKENS_PER_EXCERPT_MEANING</span><span class="plain">) {</span>
|
||||||
<<span class="cwebmacro">Complain of excessive length of the new excerpt</span> <span class="cwebmacronumber">16.3.3</span>><span class="plain">;</span>
|
<<span class="cwebmacro">Complain of excessive length of the new excerpt</span> <span class="cwebmacronumber">15.3.3</span>><span class="plain">;</span>
|
||||||
<span class="reserved">break</span><span class="plain">;</span>
|
<span class="reserved">break</span><span class="plain">;</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
<span class="identifier">em</span><span class="plain">-</span><span class="element">>em_tokens</span><span class="plain">[</span><span class="identifier">tc</span><span class="plain">++] = </span><span class="identifier">array</span><span class="plain">[</span><span class="identifier">i</span><span class="plain">];</span>
|
<span class="identifier">em</span><span class="plain">-</span><span class="element">>em_tokens</span><span class="plain">[</span><span class="identifier">tc</span><span class="plain">++] = </span><span class="identifier">array</span><span class="plain">[</span><span class="identifier">i</span><span class="plain">];</span>
|
||||||
|
@ -931,7 +915,7 @@ token lists with gaps in.
|
||||||
|
|
||||||
<p class="endnote">The function ExcerptMeanings::register_assemblage appears nowhere else.</p>
|
<p class="endnote">The function ExcerptMeanings::register_assemblage appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP16_3_3"></a><b>§16.3.3. </b>In practice, nobody ever hits this message except deliberately. It has
|
<p class="inwebparagraph"><a id="SP15_3_3"></a><b>§15.3.3. </b>In practice, nobody ever hits this message except deliberately. It has
|
||||||
a tendency to fire twice or more on the same source text because of
|
a tendency to fire twice or more on the same source text because of
|
||||||
registering multiple inflected forms of the same text; but it's not worth
|
registering multiple inflected forms of the same text; but it's not worth
|
||||||
going to any trouble to prevent this.
|
going to any trouble to prevent this.
|
||||||
|
@ -939,7 +923,7 @@ going to any trouble to prevent this.
|
||||||
|
|
||||||
|
|
||||||
<p class="macrodefinition"><code class="display">
|
<p class="macrodefinition"><code class="display">
|
||||||
<<span class="cwebmacrodefn">Complain of excessive length of the new excerpt</span> <span class="cwebmacronumber">16.3.3</span>> =
|
<<span class="cwebmacrodefn">Complain of excessive length of the new excerpt</span> <span class="cwebmacronumber">15.3.3</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -949,7 +933,7 @@ going to any trouble to prevent this.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP16_3">§16.3</a>, <a href="#SP16_3_2">§16.3.2</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP15_3">§15.3</a>, <a href="#SP15_3_2">§15.3.2</a>.</p>
|
||||||
|
|
||||||
<hr class="tocbar">
|
<hr class="tocbar">
|
||||||
<ul class="toc"><li><i>(This section begins Chapter 2: Excerpts.)</i></li><li><a href="2-pe.html">Continue with 'Parse Excerpts'</a></li></ul><hr class="tocbar">
|
<ul class="toc"><li><i>(This section begins Chapter 2: Excerpts.)</i></li><li><a href="2-pe.html">Continue with 'Parse Excerpts'</a></li></ul><hr class="tocbar">
|
||||||
|
|
|
@ -153,11 +153,11 @@ numbers.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function Cardinals::preform_optimiser is used in 1/lm (<a href="1-lm.html#SP4">§4</a>).</p>
|
<p class="endnote">The function Cardinals::preform_optimiser is used in 1/lm (<a href="1-lm.html#SP5">§5</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function Cardinals::mark_as_cardinal is used in 2/em (<a href="2-em.html#SP7">§7</a>).</p>
|
<p class="endnote">The function Cardinals::mark_as_cardinal is used in 2/em (<a href="2-em.html#SP6">§6</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function Cardinals::mark_as_ordinal is used in 2/em (<a href="2-em.html#SP7">§7</a>).</p>
|
<p class="endnote">The function Cardinals::mark_as_ordinal is used in 2/em (<a href="2-em.html#SP6">§6</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function Cardinals::enable_in_word_form is used in 1/lm (<a href="1-lm.html#SP3">§3</a>).</p>
|
<p class="endnote">The function Cardinals::enable_in_word_form is used in 1/lm (<a href="1-lm.html#SP3">§3</a>).</p>
|
||||||
|
|
||||||
|
|
|
@ -728,7 +728,7 @@ referring to them. There are four broad families which we take in turn.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function Quantifiers::make_built_in is used in 1/lm (<a href="1-lm.html#SP4">§4</a>).</p>
|
<p class="endnote">The function Quantifiers::make_built_in is used in 1/lm (<a href="1-lm.html#SP5">§5</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP18_1"></a><b>§18.1. </b>As discussed above, the two traditional quantifiers in logic are "for
|
<p class="inwebparagraph"><a id="SP18_1"></a><b>§18.1. </b>As discussed above, the two traditional quantifiers in logic are "for
|
||||||
all" and "there exists", usually written in mathematical notation as
|
all" and "there exists", usually written in mathematical notation as
|
||||||
|
|
|
@ -202,7 +202,7 @@ time".
|
||||||
|
|
||||||
<p class="endnote">The function Occurrence::store appears nowhere else.</p>
|
<p class="endnote">The function Occurrence::store appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="endnote">The function Occurrence::log is used in 1/lm (<a href="1-lm.html#SP3_4">§3.4</a>).</p>
|
<p class="endnote">The function Occurrence::log is used in 1/lm (<a href="1-lm.html#SP3_5">§3.5</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function Occurrence::is_valid appears nowhere else.</p>
|
<p class="endnote">The function Occurrence::is_valid appears nowhere else.</p>
|
||||||
|
|
||||||
|
|
|
@ -124,7 +124,7 @@ will vary depending on the verb it's coupled with.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function Prepositions::log is used in 1/lm (<a href="1-lm.html#SP3_4">§3.4</a>).</p>
|
<p class="endnote">The function Prepositions::log is used in 1/lm (<a href="1-lm.html#SP3_5">§3.5</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP5"></a><b>§5. Creation. </b>Prepositions are completely determined by their wording: the "for" attached
|
<p class="inwebparagraph"><a id="SP5"></a><b>§5. Creation. </b>Prepositions are completely determined by their wording: the "for" attached
|
||||||
to one verb is the same preposition as the "for" attached to another one.
|
to one verb is the same preposition as the "for" attached to another one.
|
||||||
|
@ -295,7 +295,7 @@ with a given "permitted verb".
|
||||||
|
|
||||||
<p class="endnote">The function Prepositions::mark_for_preform is used in 1/lm (<a href="1-lm.html#SP3">§3</a>).</p>
|
<p class="endnote">The function Prepositions::mark_for_preform is used in 1/lm (<a href="1-lm.html#SP3">§3</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function Prepositions::preform_optimiser is used in 1/lm (<a href="1-lm.html#SP4">§4</a>).</p>
|
<p class="endnote">The function Prepositions::preform_optimiser is used in 1/lm (<a href="1-lm.html#SP5">§5</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function Prepositions::mark_as_preposition is used in <a href="#SP5">§5</a>.</p>
|
<p class="endnote">The function Prepositions::mark_as_preposition is used in <a href="#SP5">§5</a>.</p>
|
||||||
|
|
||||||
|
|
|
@ -149,7 +149,7 @@ instead of a word: for example, the <code class="display"><span class="extract">
|
||||||
|
|
||||||
<p class="endnote">The function Verbs::new_verb is used in <a href="#SP6">§6</a>.</p>
|
<p class="endnote">The function Verbs::new_verb is used in <a href="#SP6">§6</a>.</p>
|
||||||
|
|
||||||
<p class="endnote">The function Verbs::log_verb is used in 1/lm (<a href="1-lm.html#SP3_4">§3.4</a>).</p>
|
<p class="endnote">The function Verbs::log_verb is used in 1/lm (<a href="1-lm.html#SP3_5">§3.5</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP5"></a><b>§5. Package. </b></p>
|
<p class="inwebparagraph"><a id="SP5"></a><b>§5. Package. </b></p>
|
||||||
|
|
||||||
|
|
|
@ -895,7 +895,7 @@ or "the verb to be able to see" use these.
|
||||||
|
|
||||||
<p class="endnote">The function VerbUsages::mark_as_verb is used in <a href="#SP6">§6</a>.</p>
|
<p class="endnote">The function VerbUsages::mark_as_verb is used in <a href="#SP6">§6</a>.</p>
|
||||||
|
|
||||||
<p class="endnote">The function VerbUsages::preform_optimiser is used in 1/lm (<a href="1-lm.html#SP4">§4</a>).</p>
|
<p class="endnote">The function VerbUsages::preform_optimiser is used in 1/lm (<a href="1-lm.html#SP5">§5</a>).</p>
|
||||||
|
|
||||||
<hr class="tocbar">
|
<hr class="tocbar">
|
||||||
<ul class="toc"><li><a href="4-vrb.html">Back to 'Verbs'</a></li><li><a href="4-prp.html">Continue with 'Prepositions'</a></li></ul><hr class="tocbar">
|
<ul class="toc"><li><a href="4-vrb.html">Back to 'Verbs'</a></li><li><a href="4-prp.html">Continue with 'Prepositions'</a></li></ul><hr class="tocbar">
|
||||||
|
|
|
@ -80,41 +80,8 @@
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">KIND_NT</span><span class="plain"> </span> <span class="comment">"A woman is a kind of person"</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">KIND_NT</span><span class="plain"> </span> <span class="comment">"A woman is a kind of person"</span>
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">PROPERTY_LIST_NT</span><span class="plain"> </span> <span class="comment">"capacity 2"</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">PROPERTY_LIST_NT</span><span class="plain"> </span> <span class="comment">"capacity 2"</span>
|
||||||
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">verbal_certainty_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: certainty level if known</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">sentence_is_existential_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: such as "there is a man"</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">linguistic_error_here_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: one of the errors occurred here</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">inverted_verb_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: an inversion of subject and object has occurred</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">possessive_verb_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: this is a non-relative use of "to have"</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">verb_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">verb_usage</span></code>: what's being done here</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">preposition_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">preposition_identity</span></code>: which preposition, if any, qualifies it</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">second_preposition_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">preposition_identity</span></code>: which further preposition, if any, qualifies it</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">verb_meaning_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">verb_meaning</span></code>: what it means</span>
|
|
||||||
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">nounphrase_article_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: definite or indefinite article: see below</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">plural_reference_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: used by PROPER NOUN nodes for evident plurals</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">gender_reference_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: used by PROPER NOUN nodes for evident genders</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">relationship_node_type_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: what kind of inference this assertion makes</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">implicitly_refers_to_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: this will implicitly refer to something</span>
|
|
||||||
|
|
||||||
<span class="definitionkeyword">define</span> <span class="constant">ASSERT_NFLAG</span><span class="plain"> 0</span><span class="identifier">x00000008</span><span class="plain"> </span> <span class="comment">allow this on either side of an assertion?</span>
|
<span class="definitionkeyword">define</span> <span class="constant">ASSERT_NFLAG</span><span class="plain"> 0</span><span class="identifier">x00000008</span><span class="plain"> </span> <span class="comment">allow this on either side of an assertion?</span>
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">TwoLikelihoods_LINERROR</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">TwoLikelihoods_LINERROR</span>
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">verb</span><span class="plain">, </span><span class="reserved">verb_usage</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">preposition</span><span class="plain">, </span><span class="reserved">preposition_identity</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">second_preposition</span><span class="plain">, </span><span class="reserved">preposition_identity</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="reserved">verb_meaning</span><span class="plain">, </span><span class="reserved">verb_meaning</span><span class="plain">)</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">verb</span><span class="plain">, </span><span class="reserved">verb_usage</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">preposition</span><span class="plain">, </span><span class="reserved">preposition_identity</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="identifier">second_preposition</span><span class="plain">, </span><span class="reserved">preposition_identity</span><span class="plain">)</span>
|
|
||||||
<span class="identifier">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain">(</span><span class="reserved">verb_meaning</span><span class="plain">, </span><span class="reserved">verb_meaning</span><span class="plain">)</span>
|
|
||||||
|
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Diagrams::setup</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Diagrams::setup</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
<span class="identifier">ParseTree::md</span><span class="plain">((</span><span class="identifier">parse_tree_node_type</span><span class="plain">) { </span><span class="constant">AVERB_NT</span><span class="plain">, </span><span class="string">"AVERB_NT"</span><span class="plain">, 0, 0, </span><span class="constant">L3_NCAT</span><span class="plain">, 0 });</span>
|
<span class="identifier">ParseTree::md</span><span class="plain">((</span><span class="identifier">parse_tree_node_type</span><span class="plain">) { </span><span class="constant">AVERB_NT</span><span class="plain">, </span><span class="string">"AVERB_NT"</span><span class="plain">, 0, 0, </span><span class="constant">L3_NCAT</span><span class="plain">, 0 });</span>
|
||||||
<span class="identifier">ParseTree::md</span><span class="plain">((</span><span class="identifier">parse_tree_node_type</span><span class="plain">) { </span><span class="constant">RELATIONSHIP_NT</span><span class="plain">, </span><span class="string">"RELATIONSHIP_NT"</span><span class="plain">, 0, 2, </span><span class="constant">L3_NCAT</span><span class="plain">, </span><span class="constant">ASSERT_NFLAG</span><span class="plain"> });</span>
|
<span class="identifier">ParseTree::md</span><span class="plain">((</span><span class="identifier">parse_tree_node_type</span><span class="plain">) { </span><span class="constant">RELATIONSHIP_NT</span><span class="plain">, </span><span class="string">"RELATIONSHIP_NT"</span><span class="plain">, 0, 2, </span><span class="constant">L3_NCAT</span><span class="plain">, </span><span class="constant">ASSERT_NFLAG</span><span class="plain"> });</span>
|
||||||
|
@ -146,7 +113,7 @@
|
||||||
|
|
||||||
<p class="endnote">The function Diagrams::setup is used in 1/lm (<a href="1-lm.html#SP3">§3</a>).</p>
|
<p class="endnote">The function Diagrams::setup is used in 1/lm (<a href="1-lm.html#SP3">§3</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b></p>
|
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b></p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
<pre class="display">
|
||||||
|
|
|
@ -280,7 +280,7 @@ has been specified.
|
||||||
|
|
||||||
<p class="endnote">The function VerbMeanings::set_where_assigned is used in 4/vrb (<a href="4-vrb.html#SP12">§12</a>).</p>
|
<p class="endnote">The function VerbMeanings::set_where_assigned is used in 4/vrb (<a href="4-vrb.html#SP12">§12</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function VerbMeanings::log is used in 1/lm (<a href="1-lm.html#SP3_4">§3.4</a>).</p>
|
<p class="endnote">The function VerbMeanings::log is used in 1/lm (<a href="1-lm.html#SP3_5">§3.5</a>).</p>
|
||||||
|
|
||||||
<hr class="tocbar">
|
<hr class="tocbar">
|
||||||
<ul class="toc"><li><a href="5-dgr.html">Back to 'Diagrams'</a></li><li><a href="5-np.html">Continue with 'Noun Phrases'</a></li></ul><hr class="tocbar">
|
<ul class="toc"><li><a href="5-dgr.html">Back to 'Diagrams'</a></li><li><a href="5-np.html">Continue with 'Noun Phrases'</a></li></ul><hr class="tocbar">
|
||||||
|
|
|
@ -59,9 +59,10 @@
|
||||||
<!--Weave of '1/mm' generated by 7-->
|
<!--Weave of '1/mm' generated by 7-->
|
||||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">multimedia</a></li><li><a href="index.html#1">Chapter 1: Starting Up</a></li><li><b>Multimedia Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">multimedia</a></li><li><a href="index.html#1">Chapter 1: Starting Up</a></li><li><b>Multimedia Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="#SP1">§1. Introduction</a></li><li><a href="#SP3">§3. The beginning</a></li><li><a href="#SP4">§4. The end</a></li></ul><hr class="tocbar">
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>This section simoly sets up the module in ways expected by <code class="display"><span class="extract">foundation</span></code>, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Introduction. </b></p>
|
which use this module:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -85,17 +86,18 @@
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. The beginning. </b>(The client doesn't need to call the start and end routines, because the
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>Like all modules, this one must define a <code class="display"><span class="extract">start</span></code> and <code class="display"><span class="extract">end</span></code> function:
|
||||||
foundation module does that automatically.)
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
<pre class="display">
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">MultimediaModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">MultimediaModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.1</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">3.1</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.2</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.2</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.3</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.3</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's command line switches</span> <span class="cwebmacronumber">3.4</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.4</span>><span class="character">;</span>
|
||||||
|
<span class="plain">}</span>
|
||||||
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">MultimediaModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
@ -103,8 +105,10 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">The function MultimediaModule::start appears nowhere else.</p>
|
<p class="endnote">The function MultimediaModule::start appears nowhere else.</p>
|
||||||
|
|
||||||
|
<p class="endnote">The function MultimediaModule::end appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">3.1</span>> =
|
<<span class="cwebmacrodefn">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">3.1</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -117,7 +121,7 @@ foundation module does that automatically.)
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_2"></a><b>§3.2. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_2"></a><b>§3.2. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.2</span>> =
|
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">3.2</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -130,7 +134,7 @@ foundation module does that automatically.)
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_3"></a><b>§3.3. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_3"></a><b>§3.3. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.3</span>> =
|
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.3</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -143,7 +147,7 @@ foundation module does that automatically.)
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_4"></a><b>§3.4. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_4"></a><b>§3.4. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's command line switches</span> <span class="cwebmacronumber">3.4</span>> =
|
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.4</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -155,18 +159,6 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. The end. </b></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">MultimediaModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
||||||
<span class="plain">}</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">The function MultimediaModule::end appears nowhere else.</p>
|
|
||||||
|
|
||||||
<hr class="tocbar">
|
<hr class="tocbar">
|
||||||
<!--End of weave-->
|
<!--End of weave-->
|
||||||
</main>
|
</main>
|
||||||
|
|
|
@ -59,15 +59,92 @@
|
||||||
<!--Weave of '1/pm' generated by 7-->
|
<!--Weave of '1/pm' generated by 7-->
|
||||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">problems</a></li><li><a href="index.html#1">Chapter 1: Starting Up</a></li><li><b>Problems Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">problems</a></li><li><a href="index.html#1">Chapter 1: Starting Up</a></li><li><b>Problems Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="#SP1">§1. Introduction</a></li><li><a href="#SP2">§2. Annotations</a></li><li><a href="#SP3">§3. The beginning</a></li><li><a href="#SP4">§4. The end</a></li></ul><hr class="tocbar">
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>This section simoly sets up the module in ways expected by <code class="display"><span class="extract">foundation</span></code>, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Introduction. </b></p>
|
which use this module:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
<span class="definitionkeyword">define</span> <span class="constant">PROBLEMS_MODULE</span><span class="plain"> </span><span class="identifier">TRUE</span>
|
<span class="definitionkeyword">define</span> <span class="constant">PROBLEMS_MODULE</span><span class="plain"> </span><span class="identifier">TRUE</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP2"></a><b>§2. Annotations. </b></p>
|
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b>Like all modules, this one must define a <code class="display"><span class="extract">start</span></code> and <code class="display"><span class="extract">end</span></code> function:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<pre class="display">
|
||||||
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ProblemsModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
|
<<span class="cwebmacro">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">2.1</span>><span class="character">;</span>
|
||||||
|
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">2.2</span>><span class="character">;</span>
|
||||||
|
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">2.3</span>><span class="character">;</span>
|
||||||
|
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">2.4</span>><span class="character">;</span>
|
||||||
|
<span class="identifier">ParseTree::allow_annotation_to_category</span><span class="plain">(</span><span class="identifier">L2_NCAT</span><span class="plain">, </span><span class="constant">problem_falls_under_ANNOT</span><span class="plain">);</span>
|
||||||
|
<span class="plain">}</span>
|
||||||
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ProblemsModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
|
<span class="plain">}</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
|
<p class="endnote">The function ProblemsModule::start appears nowhere else.</p>
|
||||||
|
|
||||||
|
<p class="endnote">The function ProblemsModule::end appears nowhere else.</p>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"><a id="SP2_1"></a><b>§2.1. </b><code class="display">
|
||||||
|
<<span class="cwebmacrodefn">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">2.1</span>> =
|
||||||
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
<pre class="displaydefn">
|
||||||
|
<span class="plain">;</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
|
<p class="endnote">This code is used in <a href="#SP2">§2</a>.</p>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"><a id="SP2_2"></a><b>§2.2. </b><code class="display">
|
||||||
|
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">2.2</span>> =
|
||||||
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
<pre class="displaydefn">
|
||||||
|
<span class="plain">;</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
|
<p class="endnote">This code is used in <a href="#SP2">§2</a>.</p>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"><a id="SP2_3"></a><b>§2.3. </b><code class="display">
|
||||||
|
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">2.3</span>> =
|
||||||
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
<pre class="displaydefn">
|
||||||
|
<span class="plain">;</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
|
<p class="endnote">This code is used in <a href="#SP2">§2</a>.</p>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"><a id="SP2_4"></a><b>§2.4. </b><code class="display">
|
||||||
|
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">2.4</span>> =
|
||||||
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
<pre class="displaydefn">
|
||||||
|
<span class="plain">;</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
|
<p class="endnote">This code is used in <a href="#SP2">§2</a>.</p>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>This module uses <code class="display"><span class="extract">syntax</span></code>, and adds the following annotations to the
|
||||||
|
syntax tree.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -81,89 +158,6 @@
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. The beginning. </b>(The client doesn't need to call the start and end routines, because the
|
|
||||||
foundation module does that automatically.)
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ProblemsModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
||||||
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.1</span>><span class="character">;</span>
|
|
||||||
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.2</span>><span class="character">;</span>
|
|
||||||
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.3</span>><span class="character">;</span>
|
|
||||||
<<span class="cwebmacro">Register this module's command line switches</span> <span class="cwebmacronumber">3.4</span>><span class="character">;</span>
|
|
||||||
<span class="identifier">ParseTree::allow_annotation_to_category</span><span class="plain">(</span><span class="identifier">L2_NCAT</span><span class="plain">, </span><span class="constant">problem_falls_under_ANNOT</span><span class="plain">);</span>
|
|
||||||
<span class="plain">}</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">The function ProblemsModule::start appears nowhere else.</p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
|
||||||
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">3.1</span>> =
|
|
||||||
</code></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="displaydefn">
|
|
||||||
<span class="plain">;</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_2"></a><b>§3.2. </b><code class="display">
|
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.2</span>> =
|
|
||||||
</code></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="displaydefn">
|
|
||||||
<span class="plain">;</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_3"></a><b>§3.3. </b><code class="display">
|
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.3</span>> =
|
|
||||||
</code></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="displaydefn">
|
|
||||||
<span class="plain">;</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_4"></a><b>§3.4. </b><code class="display">
|
|
||||||
<<span class="cwebmacrodefn">Register this module's command line switches</span> <span class="cwebmacronumber">3.4</span>> =
|
|
||||||
</code></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="displaydefn">
|
|
||||||
<span class="plain">;</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. The end. </b></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ProblemsModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
||||||
<span class="plain">}</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">The function ProblemsModule::end appears nowhere else.</p>
|
|
||||||
|
|
||||||
<hr class="tocbar">
|
<hr class="tocbar">
|
||||||
<ul class="toc"><li><i>(This section begins Chapter 1: Starting Up.)</i></li><li><a href="1-tlm.html">Continue with 'Telemetry'</a></li></ul><hr class="tocbar">
|
<ul class="toc"><li><i>(This section begins Chapter 1: Starting Up.)</i></li><li><a href="1-tlm.html">Continue with 'Telemetry'</a></li></ul><hr class="tocbar">
|
||||||
<!--End of weave-->
|
<!--End of weave-->
|
||||||
|
|
|
@ -59,9 +59,10 @@
|
||||||
<!--Weave of '1/sm' generated by 7-->
|
<!--Weave of '1/sm' generated by 7-->
|
||||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">syntax</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>Syntax Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">syntax</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>Syntax Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="#SP1">§1. Introduction</a></li><li><a href="#SP3">§3. The beginning</a></li><li><a href="#SP4">§4. The end</a></li></ul><hr class="tocbar">
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>This section simoly sets up the module in ways expected by <code class="display"><span class="extract">foundation</span></code>, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Introduction. </b></p>
|
which use this module:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
|
@ -85,27 +86,30 @@
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. The beginning. </b>(The client doesn't need to call the start and end routines, because the
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>Like all modules, this one must define a <code class="display"><span class="extract">start</span></code> and <code class="display"><span class="extract">end</span></code> function:
|
||||||
foundation module does that automatically.)
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
<pre class="display">
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">SyntaxModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">SyntaxModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.1</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">3.1</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.3</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.2</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.4</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.4</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's command line switches</span> <span class="cwebmacronumber">3.5</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.5</span>><span class="character">;</span>
|
||||||
<span class="functiontext">ParseTree::metadata_setup</span><span class="plain">();</span>
|
<span class="functiontext">ParseTree::metadata_setup</span><span class="plain">();</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">SyntaxModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
|
<span class="plain">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function SyntaxModule::start appears nowhere else.</p>
|
<p class="endnote">The function SyntaxModule::start appears nowhere else.</p>
|
||||||
|
|
||||||
|
<p class="endnote">The function SyntaxModule::end appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">3.1</span>> =
|
<<span class="cwebmacrodefn">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">3.1</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -117,14 +121,27 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_2"></a><b>§3.2. </b></p>
|
<p class="inwebparagraph"><a id="SP3_2"></a><b>§3.2. </b><code class="display">
|
||||||
|
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">3.2</span>> =
|
||||||
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
<pre class="displaydefn">
|
||||||
|
<span class="plain">;</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"><a id="SP3_3"></a><b>§3.3. </b></p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">VERIFICATIONS_DA</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">VERIFICATIONS_DA</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP3_3"></a><b>§3.3. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_4"></a><b>§3.4. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.3</span>> =
|
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.4</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -136,8 +153,8 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_4"></a><b>§3.4. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_5"></a><b>§3.5. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.4</span>> =
|
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.5</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -152,31 +169,6 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_5"></a><b>§3.5. </b><code class="display">
|
|
||||||
<<span class="cwebmacrodefn">Register this module's command line switches</span> <span class="cwebmacronumber">3.5</span>> =
|
|
||||||
</code></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="displaydefn">
|
|
||||||
<span class="plain">;</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. The end. </b></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">SyntaxModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
||||||
<span class="plain">}</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">The function SyntaxModule::end appears nowhere else.</p>
|
|
||||||
|
|
||||||
<hr class="tocbar">
|
<hr class="tocbar">
|
||||||
<!--End of weave-->
|
<!--End of weave-->
|
||||||
</main>
|
</main>
|
||||||
|
|
|
@ -314,8 +314,6 @@ store annotations in the following:
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">language_element_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: this node is not really a sentence, but a language definition Use</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">language_element_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">int</span></code>: this node is not really a sentence, but a language definition Use</span>
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">sentence_unparsed_ANNOT</span><span class="plain"> </span> <span class="comment">int: set if verbs haven't been sought yet here</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">sentence_unparsed_ANNOT</span><span class="plain"> </span> <span class="comment">int: set if verbs haven't been sought yet here</span>
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">suppress_heading_dependencies_ANNOT</span><span class="plain"> </span> <span class="comment">int: ignore extension dependencies on this heading node</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">suppress_heading_dependencies_ANNOT</span><span class="plain"> </span> <span class="comment">int: ignore extension dependencies on this heading node</span>
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">embodying_heading_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">heading</span></code>: for parse nodes of headings</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">inclusion_of_extension_ANNOT</span><span class="plain"> </span> <span class="comment"><code class="display"><span class="extract">inform_extension</span></code>: for parse nodes of headings</span>
|
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">implied_heading_ANNOT</span><span class="plain"> </span> <span class="comment">int: set only for the heading of implied inclusions</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">implied_heading_ANNOT</span><span class="plain"> </span> <span class="comment">int: set only for the heading of implied inclusions</span>
|
||||||
<span class="definitionkeyword">define</span> <span class="constant">MAX_ANNOT_NUMBER</span><span class="plain"> (</span><span class="identifier">NO_DEFINED_ANNOT_VALUES</span><span class="plain">+1)</span>
|
<span class="definitionkeyword">define</span> <span class="constant">MAX_ANNOT_NUMBER</span><span class="plain"> (</span><span class="identifier">NO_DEFINED_ANNOT_VALUES</span><span class="plain">+1)</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
@ -528,7 +526,7 @@ never be used.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function ParseTree::log_type is used in <a href="#SP47">§47</a>, 1/sm (<a href="1-sm.html#SP3_4">§3.4</a>).</p>
|
<p class="endnote">The function ParseTree::log_type is used in <a href="#SP47">§47</a>, 1/sm (<a href="1-sm.html#SP3_5">§3.5</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function ParseTree::get_type_name appears nowhere else.</p>
|
<p class="endnote">The function ParseTree::get_type_name appears nowhere else.</p>
|
||||||
|
|
||||||
|
@ -1185,9 +1183,9 @@ logging is a diagnostic tool, we want it to work even when Inform is sick.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function ParseTree::log_tree is used in <a href="#SP49">§49</a>, 1/sm (<a href="1-sm.html#SP3_4">§3.4</a>).</p>
|
<p class="endnote">The function ParseTree::log_tree is used in <a href="#SP49">§49</a>, 1/sm (<a href="1-sm.html#SP3_5">§3.5</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function ParseTree::log_subtree is used in 1/sm (<a href="1-sm.html#SP3_4">§3.4</a>).</p>
|
<p class="endnote">The function ParseTree::log_subtree is used in 1/sm (<a href="1-sm.html#SP3_5">§3.5</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP46"></a><b>§46. </b>Either way, we recurse as follows, being careful not to make recursive calls
|
<p class="inwebparagraph"><a id="SP46"></a><b>§46. </b>Either way, we recurse as follows, being careful not to make recursive calls
|
||||||
to pursue <code class="display"><span class="extract">next</span></code> links, since otherwise a source text with more than 100,000
|
to pursue <code class="display"><span class="extract">next</span></code> links, since otherwise a source text with more than 100,000
|
||||||
|
@ -1281,7 +1279,7 @@ text in the debugging log.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function ParseTree::log_node is used in 1/sm (<a href="1-sm.html#SP3_4">§3.4</a>).</p>
|
<p class="endnote">The function ParseTree::log_node is used in 1/sm (<a href="1-sm.html#SP3_5">§3.5</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP48"></a><b>§48. </b>This is occasionally useful:
|
<p class="inwebparagraph"><a id="SP48"></a><b>§48. </b>This is occasionally useful:
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -59,14 +59,14 @@
|
||||||
<!--Weave of '1/wm' generated by 7-->
|
<!--Weave of '1/wm' generated by 7-->
|
||||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">words</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>Words Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../compiler.html">Compiler Modules</a></li><li><a href="index.html">words</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>Words Module</b></li></ul><p class="purpose">Setting up the use of this module.</p>
|
||||||
|
|
||||||
<ul class="toc"><li><a href="#SP1">§1. Introduction</a></li><li><a href="#SP3">§3. The beginning</a></li><li><a href="#SP4">§4. The end</a></li></ul><hr class="tocbar">
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>This section simoly sets up the module in ways expected by <code class="display"><span class="extract">foundation</span></code>, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Introduction. </b></p>
|
which use this module:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
<span class="definitionkeyword">define</span> <span class="constant">WORDS_MODULE</span><span class="plain"> </span><span class="identifier">TRUE</span>
|
<span class="definitionkeyword">define</span> <span class="constant">WORDS_MODULE</span><span class="plain"> </span><span class="identifier">TRUE</span>
|
||||||
<span class="definitionkeyword">define</span> <span class="constant">WORDING_LOGS_ALLOWED</span>
|
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b>To begin with, this module needs to allocate memory:
|
||||||
</p>
|
</p>
|
||||||
|
@ -94,8 +94,7 @@
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. The beginning. </b>(The client doesn't need to call the start and end routines, because the
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>Like all modules, this one must define a <code class="display"><span class="extract">start</span></code> and <code class="display"><span class="extract">end</span></code> function:
|
||||||
foundation module does that automatically.)
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -103,22 +102,39 @@ foundation module does that automatically.)
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">WordsModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">WordsModule::start</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
<span class="identifier">Memory::reason_name</span><span class="plain">(</span><span class="constant">LEXER_TEXT_MREASON</span><span class="plain">, </span><span class="string">"source text"</span><span class="plain">);</span>
|
<span class="identifier">Memory::reason_name</span><span class="plain">(</span><span class="constant">LEXER_TEXT_MREASON</span><span class="plain">, </span><span class="string">"source text"</span><span class="plain">);</span>
|
||||||
<span class="identifier">Memory::reason_name</span><span class="plain">(</span><span class="constant">LEXER_WORDS_MREASON</span><span class="plain">, </span><span class="string">"source text details"</span><span class="plain">);</span>
|
<span class="identifier">Memory::reason_name</span><span class="plain">(</span><span class="constant">LEXER_WORDS_MREASON</span><span class="plain">, </span><span class="string">"source text details"</span><span class="plain">);</span>
|
||||||
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.1</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">3.1</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.3</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's stream writers</span> <span class="cwebmacronumber">3.2</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.4</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.4</span>><span class="character">;</span>
|
||||||
<<span class="cwebmacro">Register this module's command line switches</span> <span class="cwebmacronumber">3.5</span>><span class="character">;</span>
|
<<span class="cwebmacro">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.5</span>><span class="character">;</span>
|
||||||
<span class="functiontext">Lexer::start</span><span class="plain">();</span>
|
<span class="functiontext">Lexer::start</span><span class="plain">();</span>
|
||||||
<span class="functiontext">Vocabulary::create_punctuation</span><span class="plain">();</span>
|
<span class="functiontext">Vocabulary::create_punctuation</span><span class="plain">();</span>
|
||||||
<span class="functiontext">Preform::begin</span><span class="plain">();</span>
|
<span class="functiontext">Preform::begin</span><span class="plain">();</span>
|
||||||
<span class="plain">}</span>
|
<span class="plain">}</span>
|
||||||
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">WordsModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||||
|
<span class="plain">}</span>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function WordsModule::start appears nowhere else.</p>
|
<p class="endnote">The function WordsModule::start appears nowhere else.</p>
|
||||||
|
|
||||||
|
<p class="endnote">The function WordsModule::end appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_1"></a><b>§3.1. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">3.1</span>> =
|
<<span class="cwebmacrodefn">Register this module's memory allocation reasons</span> <span class="cwebmacronumber">3.1</span>> =
|
||||||
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
<pre class="displaydefn">
|
||||||
|
<span class="plain">;</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
|
<p class="inwebparagraph"><a id="SP3_2"></a><b>§3.2. </b><code class="display">
|
||||||
|
<<span class="cwebmacrodefn">Register this module's stream writers</span> <span class="cwebmacronumber">3.2</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -133,15 +149,15 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_2"></a><b>§3.2. </b></p>
|
<p class="inwebparagraph"><a id="SP3_3"></a><b>§3.3. </b></p>
|
||||||
|
|
||||||
|
|
||||||
<pre class="definitions">
|
<pre class="definitions">
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">LEXICAL_OUTPUT_DA</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">LEXICAL_OUTPUT_DA</span>
|
||||||
<span class="definitionkeyword">enum</span> <span class="constant">VOCABULARY_DA</span>
|
<span class="definitionkeyword">enum</span> <span class="constant">VOCABULARY_DA</span>
|
||||||
</pre>
|
</pre>
|
||||||
<p class="inwebparagraph"><a id="SP3_3"></a><b>§3.3. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_4"></a><b>§3.4. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.3</span>> =
|
<<span class="cwebmacrodefn">Register this module's debugging log aspects</span> <span class="cwebmacronumber">3.4</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -154,8 +170,8 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_4"></a><b>§3.4. </b><code class="display">
|
<p class="inwebparagraph"><a id="SP3_5"></a><b>§3.5. </b><code class="display">
|
||||||
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.4</span>> =
|
<<span class="cwebmacrodefn">Register this module's debugging log writers</span> <span class="cwebmacronumber">3.5</span>> =
|
||||||
</code></p>
|
</code></p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -168,31 +184,6 @@ foundation module does that automatically.)
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP3_5"></a><b>§3.5. </b><code class="display">
|
|
||||||
<<span class="cwebmacrodefn">Register this module's command line switches</span> <span class="cwebmacronumber">3.5</span>> =
|
|
||||||
</code></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="displaydefn">
|
|
||||||
<span class="plain">;</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">This code is used in <a href="#SP3">§3</a>.</p>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. The end. </b></p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre class="display">
|
|
||||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">WordsModule::end</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
||||||
<span class="plain">}</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
|
||||||
|
|
||||||
<p class="endnote">The function WordsModule::end appears nowhere else.</p>
|
|
||||||
|
|
||||||
<hr class="tocbar">
|
<hr class="tocbar">
|
||||||
<!--End of weave-->
|
<!--End of weave-->
|
||||||
</main>
|
</main>
|
||||||
|
|
|
@ -259,7 +259,7 @@ creator, and a debugging logger:
|
||||||
|
|
||||||
<p class="endnote">The function Vocabulary::vocab_entry_new is used in <a href="#SP10">§10</a>, <a href="#SP16_1">§16.1</a>, <a href="#SP16_2">§16.2</a>.</p>
|
<p class="endnote">The function Vocabulary::vocab_entry_new is used in <a href="#SP10">§10</a>, <a href="#SP16_1">§16.1</a>, <a href="#SP16_2">§16.2</a>.</p>
|
||||||
|
|
||||||
<p class="endnote">The function Vocabulary::log is used in 1/wm (<a href="1-wm.html#SP3_4">§3.4</a>).</p>
|
<p class="endnote">The function Vocabulary::log is used in 1/wm (<a href="1-wm.html#SP3_5">§3.5</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP7"></a><b>§7. </b>It's perhaps unexpected that a vocabulary entry not only stores a (pointer
|
<p class="inwebparagraph"><a id="SP7"></a><b>§7. </b>It's perhaps unexpected that a vocabulary entry not only stores a (pointer
|
||||||
to) a copy of the text, the "exemplar" (since it is text which is an
|
to) a copy of the text, the "exemplar" (since it is text which is an
|
||||||
|
@ -320,7 +320,7 @@ structure:
|
||||||
|
|
||||||
<p class="endnote">The function Vocabulary::get_exemplar is used in 4/prf (<a href="4-prf.html#SP30">§30</a>).</p>
|
<p class="endnote">The function Vocabulary::get_exemplar is used in 4/prf (<a href="4-prf.html#SP30">§30</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function Vocabulary::writer is used in 1/wm (<a href="1-wm.html#SP3_1">§3.1</a>).</p>
|
<p class="endnote">The function Vocabulary::writer is used in 1/wm (<a href="1-wm.html#SP3_2">§3.2</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP9"></a><b>§9. </b>An integer is stored at each vocabulary entry, recording its value
|
<p class="inwebparagraph"><a id="SP9"></a><b>§9. </b>An integer is stored at each vocabulary entry, recording its value
|
||||||
if it every turns out to parse as a literal number:
|
if it every turns out to parse as a literal number:
|
||||||
|
|
|
@ -260,7 +260,7 @@ frequently, since it consumes memory:
|
||||||
|
|
||||||
<p class="endnote">The function WordAssemblages::nonempty appears nowhere else.</p>
|
<p class="endnote">The function WordAssemblages::nonempty appears nowhere else.</p>
|
||||||
|
|
||||||
<p class="endnote">The function WordAssemblages::writer is used in 1/wm (<a href="1-wm.html#SP3_1">§3.1</a>).</p>
|
<p class="endnote">The function WordAssemblages::writer is used in 1/wm (<a href="1-wm.html#SP3_2">§3.2</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function WordAssemblages::hyphenated appears nowhere else.</p>
|
<p class="endnote">The function WordAssemblages::hyphenated appears nowhere else.</p>
|
||||||
|
|
||||||
|
@ -405,7 +405,7 @@ frequently, since it consumes memory:
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function WordAssemblages::log is used in 1/wm (<a href="1-wm.html#SP3_4">§3.4</a>).</p>
|
<p class="endnote">The function WordAssemblages::log is used in 1/wm (<a href="1-wm.html#SP3_5">§3.5</a>).</p>
|
||||||
|
|
||||||
<p class="endnote">The function WordAssemblages::index appears nowhere else.</p>
|
<p class="endnote">The function WordAssemblages::index appears nowhere else.</p>
|
||||||
|
|
||||||
|
|
|
@ -657,7 +657,7 @@ distinguished. We'll do this with the letters <code class="display"><span class=
|
||||||
|
|
||||||
<p class="endnote">The function Lexer::word_copy is used in <a href="#SP28">§28</a>.</p>
|
<p class="endnote">The function Lexer::word_copy is used in <a href="#SP28">§28</a>.</p>
|
||||||
|
|
||||||
<p class="endnote">The function Lexer::writer is used in 1/wm (<a href="1-wm.html#SP3_1">§3.1</a>).</p>
|
<p class="endnote">The function Lexer::writer is used in 1/wm (<a href="1-wm.html#SP3_2">§3.2</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP19"></a><b>§19. Definition of white space. </b>The following macro (to save time over a function call) is highly dangerous,
|
<p class="inwebparagraph"><a id="SP19"></a><b>§19. Definition of white space. </b>The following macro (to save time over a function call) is highly dangerous,
|
||||||
and of the kind which all books on C counsel against. If it were called with
|
and of the kind which all books on C counsel against. If it were called with
|
||||||
|
|
|
@ -568,7 +568,7 @@ and we return <code class="display"><span class="extract">w2</span></code>.
|
||||||
|
|
||||||
<p class="inwebparagraph"></p>
|
<p class="inwebparagraph"></p>
|
||||||
|
|
||||||
<p class="endnote">The function Wordings::writer is used in 1/wm (<a href="1-wm.html#SP3_1">§3.1</a>).</p>
|
<p class="endnote">The function Wordings::writer is used in 1/wm (<a href="1-wm.html#SP3_2">§3.2</a>).</p>
|
||||||
|
|
||||||
<p class="inwebparagraph"><a id="SP22_1"></a><b>§22.1. </b>Note that the empty wording causes nothing to be written to the stream.
|
<p class="inwebparagraph"><a id="SP22_1"></a><b>§22.1. </b>Note that the empty wording causes nothing to be written to the stream.
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
|
|
||||||
Setting up the use of this module.
|
Setting up the use of this module.
|
||||||
|
|
||||||
@h Introduction.
|
@ This section simoly sets up the module in ways expected by |foundation|, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
|
which use this module:
|
||||||
|
|
||||||
@d ARCH_MODULE TRUE
|
@d ARCH_MODULE TRUE
|
||||||
|
|
||||||
|
@ -17,7 +19,7 @@ ALLOCATE_INDIVIDUALLY(inter_architecture)
|
||||||
ALLOCATE_INDIVIDUALLY(target_vm)
|
ALLOCATE_INDIVIDUALLY(target_vm)
|
||||||
ALLOCATE_INDIVIDUALLY(compatibility_specification)
|
ALLOCATE_INDIVIDUALLY(compatibility_specification)
|
||||||
|
|
||||||
@h The beginning.
|
@ Like all modules, this one must define a |start| and |end| function:
|
||||||
|
|
||||||
=
|
=
|
||||||
void ArchModule::start(void) {
|
void ArchModule::start(void) {
|
||||||
|
@ -25,12 +27,11 @@ void ArchModule::start(void) {
|
||||||
@<Register this module's stream writers@>;
|
@<Register this module's stream writers@>;
|
||||||
@<Register this module's debugging log aspects@>;
|
@<Register this module's debugging log aspects@>;
|
||||||
@<Register this module's debugging log writers@>;
|
@<Register this module's debugging log writers@>;
|
||||||
@<Register this module's command line switches@>;
|
|
||||||
Architectures::create();
|
Architectures::create();
|
||||||
TargetVMs::create();
|
TargetVMs::create();
|
||||||
}
|
}
|
||||||
|
void ArchModule::end(void) {
|
||||||
@
|
}
|
||||||
|
|
||||||
@<Register this module's memory allocation reasons@> =
|
@<Register this module's memory allocation reasons@> =
|
||||||
;
|
;
|
||||||
|
@ -38,19 +39,8 @@ void ArchModule::start(void) {
|
||||||
@<Register this module's stream writers@> =
|
@<Register this module's stream writers@> =
|
||||||
;
|
;
|
||||||
|
|
||||||
@
|
|
||||||
|
|
||||||
@<Register this module's debugging log aspects@> =
|
@<Register this module's debugging log aspects@> =
|
||||||
;
|
;
|
||||||
|
|
||||||
@<Register this module's debugging log writers@> =
|
@<Register this module's debugging log writers@> =
|
||||||
;
|
;
|
||||||
|
|
||||||
@<Register this module's command line switches@> =
|
|
||||||
;
|
|
||||||
|
|
||||||
@h The end.
|
|
||||||
|
|
||||||
=
|
|
||||||
void ArchModule::end(void) {
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,26 +1,27 @@
|
||||||
[HTMLModule::] Index Module.
|
[HTMLModule::] HTML Module.
|
||||||
|
|
||||||
Setting up the use of this module.
|
Setting up the use of this module.
|
||||||
|
|
||||||
@h Introduction.
|
@ This section simoly sets up the module in ways expected by |foundation|, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
|
which use this module:
|
||||||
|
|
||||||
@d HTML_MODULE TRUE
|
@d HTML_MODULE TRUE
|
||||||
|
|
||||||
@ To begin with, this module needs to allocate memory:
|
@ Like all modules, this one must define a |start| and |end| function:
|
||||||
|
|
||||||
=
|
|
||||||
|
|
||||||
@h The beginning.
|
|
||||||
(The client doesn't need to call the start and end routines, because the
|
|
||||||
foundation module does that automatically.)
|
|
||||||
|
|
||||||
=
|
=
|
||||||
void HTMLModule::start(void) {
|
void HTMLModule::start(void) {
|
||||||
|
@<Register this module's memory allocation reasons@>;
|
||||||
@<Register this module's stream writers@>;
|
@<Register this module's stream writers@>;
|
||||||
@<Register this module's debugging log aspects@>;
|
@<Register this module's debugging log aspects@>;
|
||||||
@<Register this module's debugging log writers@>;
|
@<Register this module's debugging log writers@>;
|
||||||
@<Register this module's command line switches@>;
|
|
||||||
}
|
}
|
||||||
|
void HTMLModule::end(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@<Register this module's memory allocation reasons@> =
|
||||||
|
;
|
||||||
|
|
||||||
@<Register this module's stream writers@> =
|
@<Register this module's stream writers@> =
|
||||||
;
|
;
|
||||||
|
@ -30,12 +31,3 @@ void HTMLModule::start(void) {
|
||||||
|
|
||||||
@<Register this module's debugging log writers@> =
|
@<Register this module's debugging log writers@> =
|
||||||
;
|
;
|
||||||
|
|
||||||
@<Register this module's command line switches@> =
|
|
||||||
;
|
|
||||||
|
|
||||||
@h The end.
|
|
||||||
|
|
||||||
=
|
|
||||||
void HTMLModule::end(void) {
|
|
||||||
}
|
|
||||||
|
|
|
@ -108,3 +108,15 @@ void InbuildModule::end(void) {
|
||||||
|
|
||||||
@<Register this module's debugging log writers@> =
|
@<Register this module's debugging log writers@> =
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ This module uses |syntax|, and adds the following annotations to the
|
||||||
|
syntax tree.
|
||||||
|
|
||||||
|
@e embodying_heading_ANNOT /* |heading|: for parse nodes of headings */
|
||||||
|
@e inclusion_of_extension_ANNOT /* |inform_extension|: for parse nodes of headings */
|
||||||
|
|
||||||
|
=
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(embodying_heading, heading)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(embodying_heading, heading)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(inclusion_of_extension, inform_extension)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(inclusion_of_extension, inform_extension)
|
||||||
|
|
|
@ -185,11 +185,6 @@ int last_indentation_above_level[NO_HEADING_LEVELS], lial_made = FALSE;
|
||||||
inbuild_work *work_identified = NULL;
|
inbuild_work *work_identified = NULL;
|
||||||
|
|
||||||
@ =
|
@ =
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(embodying_heading, heading)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(embodying_heading, heading)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(inclusion_of_extension, inform_extension)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(inclusion_of_extension, inform_extension)
|
|
||||||
|
|
||||||
heading *Headings::from_node(parse_node *PN) {
|
heading *Headings::from_node(parse_node *PN) {
|
||||||
return ParseTree::get_embodying_heading(PN);
|
return ParseTree::get_embodying_heading(PN);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
|
|
||||||
Setting up the use of this module.
|
Setting up the use of this module.
|
||||||
|
|
||||||
@h Introduction.
|
@ This section simoly sets up the module in ways expected by |foundation|, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
|
which use this module:
|
||||||
|
|
||||||
@d SYNTAX_MODULE TRUE
|
@d SYNTAX_MODULE TRUE
|
||||||
|
|
||||||
|
@ -17,18 +19,21 @@ ALLOCATE_INDIVIDUALLY(parse_node)
|
||||||
ALLOCATE_INDIVIDUALLY(parse_node_tree)
|
ALLOCATE_INDIVIDUALLY(parse_node_tree)
|
||||||
ALLOCATE_IN_ARRAYS(parse_node_annotation, 500)
|
ALLOCATE_IN_ARRAYS(parse_node_annotation, 500)
|
||||||
|
|
||||||
@h The beginning.
|
@ Like all modules, this one must define a |start| and |end| function:
|
||||||
(The client doesn't need to call the start and end routines, because the
|
|
||||||
foundation module does that automatically.)
|
|
||||||
|
|
||||||
=
|
=
|
||||||
void SyntaxModule::start(void) {
|
void SyntaxModule::start(void) {
|
||||||
|
@<Register this module's memory allocation reasons@>;
|
||||||
@<Register this module's stream writers@>;
|
@<Register this module's stream writers@>;
|
||||||
@<Register this module's debugging log aspects@>;
|
@<Register this module's debugging log aspects@>;
|
||||||
@<Register this module's debugging log writers@>;
|
@<Register this module's debugging log writers@>;
|
||||||
@<Register this module's command line switches@>;
|
|
||||||
ParseTree::metadata_setup();
|
ParseTree::metadata_setup();
|
||||||
}
|
}
|
||||||
|
void SyntaxModule::end(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@<Register this module's memory allocation reasons@> =
|
||||||
|
;
|
||||||
|
|
||||||
@<Register this module's stream writers@> =
|
@<Register this module's stream writers@> =
|
||||||
;
|
;
|
||||||
|
@ -45,12 +50,3 @@ void SyntaxModule::start(void) {
|
||||||
Writers::register_logger_I('N', ParseTree::log_type);
|
Writers::register_logger_I('N', ParseTree::log_type);
|
||||||
Writers::register_logger('P', ParseTree::log_node);
|
Writers::register_logger('P', ParseTree::log_node);
|
||||||
Writers::register_logger('T', ParseTree::log_subtree);
|
Writers::register_logger('T', ParseTree::log_subtree);
|
||||||
|
|
||||||
@<Register this module's command line switches@> =
|
|
||||||
;
|
|
||||||
|
|
||||||
@h The end.
|
|
||||||
|
|
||||||
=
|
|
||||||
void SyntaxModule::end(void) {
|
|
||||||
}
|
|
||||||
|
|
|
@ -184,8 +184,6 @@ typedef struct parse_node_annotation {
|
||||||
@e language_element_ANNOT /* |int|: this node is not really a sentence, but a language definition Use */
|
@e language_element_ANNOT /* |int|: this node is not really a sentence, but a language definition Use */
|
||||||
@e sentence_unparsed_ANNOT /* int: set if verbs haven't been sought yet here */
|
@e sentence_unparsed_ANNOT /* int: set if verbs haven't been sought yet here */
|
||||||
@e suppress_heading_dependencies_ANNOT /* int: ignore extension dependencies on this heading node */
|
@e suppress_heading_dependencies_ANNOT /* int: ignore extension dependencies on this heading node */
|
||||||
@e embodying_heading_ANNOT /* |heading|: for parse nodes of headings */
|
|
||||||
@e inclusion_of_extension_ANNOT /* |inform_extension|: for parse nodes of headings */
|
|
||||||
@e implied_heading_ANNOT /* int: set only for the heading of implied inclusions */
|
@e implied_heading_ANNOT /* int: set only for the heading of implied inclusions */
|
||||||
|
|
||||||
@d MAX_ANNOT_NUMBER (NO_DEFINED_ANNOT_VALUES+1)
|
@d MAX_ANNOT_NUMBER (NO_DEFINED_ANNOT_VALUES+1)
|
||||||
|
|
|
@ -2,10 +2,11 @@
|
||||||
|
|
||||||
Setting up the use of this module.
|
Setting up the use of this module.
|
||||||
|
|
||||||
@h Introduction.
|
@ This section simoly sets up the module in ways expected by |foundation|, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
|
which use this module:
|
||||||
|
|
||||||
@d WORDS_MODULE TRUE
|
@d WORDS_MODULE TRUE
|
||||||
@d WORDING_LOGS_ALLOWED
|
|
||||||
|
|
||||||
@ To begin with, this module needs to allocate memory:
|
@ To begin with, this module needs to allocate memory:
|
||||||
|
|
||||||
|
@ -27,22 +28,25 @@ ALLOCATE_INDIVIDUALLY(production_list)
|
||||||
ALLOCATE_INDIVIDUALLY(production)
|
ALLOCATE_INDIVIDUALLY(production)
|
||||||
ALLOCATE_INDIVIDUALLY(ptoken)
|
ALLOCATE_INDIVIDUALLY(ptoken)
|
||||||
|
|
||||||
@h The beginning.
|
@ Like all modules, this one must define a |start| and |end| function:
|
||||||
(The client doesn't need to call the start and end routines, because the
|
|
||||||
foundation module does that automatically.)
|
|
||||||
|
|
||||||
=
|
=
|
||||||
void WordsModule::start(void) {
|
void WordsModule::start(void) {
|
||||||
Memory::reason_name(LEXER_TEXT_MREASON, "source text");
|
Memory::reason_name(LEXER_TEXT_MREASON, "source text");
|
||||||
Memory::reason_name(LEXER_WORDS_MREASON, "source text details");
|
Memory::reason_name(LEXER_WORDS_MREASON, "source text details");
|
||||||
|
@<Register this module's memory allocation reasons@>;
|
||||||
@<Register this module's stream writers@>;
|
@<Register this module's stream writers@>;
|
||||||
@<Register this module's debugging log aspects@>;
|
@<Register this module's debugging log aspects@>;
|
||||||
@<Register this module's debugging log writers@>;
|
@<Register this module's debugging log writers@>;
|
||||||
@<Register this module's command line switches@>;
|
|
||||||
Lexer::start();
|
Lexer::start();
|
||||||
Vocabulary::create_punctuation();
|
Vocabulary::create_punctuation();
|
||||||
Preform::begin();
|
Preform::begin();
|
||||||
}
|
}
|
||||||
|
void WordsModule::end(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@<Register this module's memory allocation reasons@> =
|
||||||
|
;
|
||||||
|
|
||||||
@<Register this module's stream writers@> =
|
@<Register this module's stream writers@> =
|
||||||
Writers::register_writer('A', &WordAssemblages::writer);
|
Writers::register_writer('A', &WordAssemblages::writer);
|
||||||
|
@ -62,12 +66,3 @@ void WordsModule::start(void) {
|
||||||
@<Register this module's debugging log writers@> =
|
@<Register this module's debugging log writers@> =
|
||||||
Writers::register_logger('f', WordAssemblages::log);
|
Writers::register_logger('f', WordAssemblages::log);
|
||||||
Writers::register_logger('v', Vocabulary::log);
|
Writers::register_logger('v', Vocabulary::log);
|
||||||
|
|
||||||
@<Register this module's command line switches@> =
|
|
||||||
;
|
|
||||||
|
|
||||||
@h The end.
|
|
||||||
|
|
||||||
=
|
|
||||||
void WordsModule::end(void) {
|
|
||||||
}
|
|
||||||
|
|
|
@ -2,16 +2,13 @@
|
||||||
|
|
||||||
Setting up the use of this module.
|
Setting up the use of this module.
|
||||||
|
|
||||||
@ There is no interesting code in this section: all Intools modules open with
|
@ This section simoly sets up the module in ways expected by |foundation|, and
|
||||||
a section like this one, configuring the memory management and debugging log
|
contains no code of interest. The following constant exists only in tools
|
||||||
features we will use from |foundation|.
|
which use this module:
|
||||||
|
|
||||||
The following symbol is defined in every tool incorporating this module:
|
|
||||||
|
|
||||||
@d CORE_MODULE TRUE
|
@d CORE_MODULE TRUE
|
||||||
|
|
||||||
@h Setting up the memory manager.
|
@ To begin with, this module needs to allocate memory:
|
||||||
We need to itemise the structures we'll want to allocate:
|
|
||||||
|
|
||||||
@e bibliographic_datum_MT
|
@e bibliographic_datum_MT
|
||||||
@e phrase_MT
|
@e phrase_MT
|
||||||
|
@ -184,11 +181,8 @@ ALLOCATE_IN_ARRAYS(stacked_variable, 100)
|
||||||
ALLOCATE_IN_ARRAYS(table_contribution, 100)
|
ALLOCATE_IN_ARRAYS(table_contribution, 100)
|
||||||
ALLOCATE_IN_ARRAYS(value_holster, 100)
|
ALLOCATE_IN_ARRAYS(value_holster, 100)
|
||||||
|
|
||||||
@h The beginning.
|
@ Next we define some functions, by macro, which write to the debugging log
|
||||||
(The client doesn't need to call the start and end routines, because the
|
or other text streams.
|
||||||
foundation module does that automatically.)
|
|
||||||
|
|
||||||
@d WORDING_LOGS_ALLOWED
|
|
||||||
|
|
||||||
@d REGISTER_WRITER(c, f) Writers::register_logger(c, &f##_writer);
|
@d REGISTER_WRITER(c, f) Writers::register_logger(c, &f##_writer);
|
||||||
@d COMPILE_WRITER(t, f)
|
@d COMPILE_WRITER(t, f)
|
||||||
|
@ -233,13 +227,17 @@ COMPILE_WRITER(property *, Properties::log)
|
||||||
COMPILE_WRITER(nonlocal_variable *, NonlocalVariables::log)
|
COMPILE_WRITER(nonlocal_variable *, NonlocalVariables::log)
|
||||||
COMPILE_WRITER(noun *, Nouns::log)
|
COMPILE_WRITER(noun *, Nouns::log)
|
||||||
|
|
||||||
@ =
|
@ Like all modules, this one must define a |start| and |end| function:
|
||||||
|
|
||||||
|
=
|
||||||
void CoreModule::start(void) {
|
void CoreModule::start(void) {
|
||||||
@<Register this module's memory allocation reasons@>;
|
@<Register this module's memory allocation reasons@>;
|
||||||
@<Register this module's stream writers@>;
|
@<Register this module's stream writers@>;
|
||||||
@<Register this module's debugging log aspects@>;
|
@<Register this module's debugging log aspects@>;
|
||||||
@<Register this module's debugging log writers@>;
|
@<Register this module's debugging log writers@>;
|
||||||
}
|
}
|
||||||
|
void CoreModule::end(void) {
|
||||||
|
}
|
||||||
|
|
||||||
@ Not all of our memory will be claimed in the form of structures: now and then
|
@ Not all of our memory will be claimed in the form of structures: now and then
|
||||||
we need to use the equivalent of traditional |malloc| and |calloc| routines.
|
we need to use the equivalent of traditional |malloc| and |calloc| routines.
|
||||||
|
@ -405,8 +403,217 @@ void CoreModule::writer(OUTPUT_STREAM, char *format_string, int wn) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@h The end.
|
@ This module uses |syntax|, and adds the following annotations to the syntax
|
||||||
|
tree; though it's a little like itemising the baubles on a Christmas tree.
|
||||||
|
|
||||||
|
@e action_meaning_ANNOT /* |action_pattern|: meaning in parse tree when used as noun */
|
||||||
|
@e aph_ANNOT /* |adjectival_phrase|: which adjective is asserted */
|
||||||
|
@e category_of_I6_translation_ANNOT /* int: what sort of "translates into I6" sentence this is */
|
||||||
|
@e clears_pronouns_ANNOT /* |int|: this sentence erases the current value of "it" */
|
||||||
|
@e colon_block_command_ANNOT /* int: this COMMAND uses the ":" not begin/end syntax */
|
||||||
|
@e condition_tense_ANNOT /* |time_period|: for specification nodes */
|
||||||
|
@e constant_action_name_ANNOT /* |action_name|: for constant values */
|
||||||
|
@e constant_action_pattern_ANNOT /* |action_pattern|: for constant values */
|
||||||
|
@e constant_activity_ANNOT /* |activity|: for constant values */
|
||||||
|
@e constant_binary_predicate_ANNOT /* |binary_predicate|: for constant values */
|
||||||
|
@e constant_constant_phrase_ANNOT /* |constant_phrase|: for constant values */
|
||||||
|
@e constant_enumeration_ANNOT /* |int|: which one from an enumerated kind */
|
||||||
|
@e constant_equation_ANNOT /* |equation|: for constant values */
|
||||||
|
@e constant_grammar_verb_ANNOT /* |grammar_verb|: for constant values */
|
||||||
|
@e constant_instance_ANNOT /* |instance|: for constant values */
|
||||||
|
@e constant_local_variable_ANNOT /* |local_variable|: for constant values */
|
||||||
|
@e constant_named_action_pattern_ANNOT /* |named_action_pattern|: for constant values */
|
||||||
|
@e constant_named_rulebook_outcome_ANNOT /* |named_rulebook_outcome|: for constant values */
|
||||||
|
@e constant_nonlocal_variable_ANNOT /* |nonlocal_variable|: for constant values */
|
||||||
|
@e constant_number_ANNOT /* |int|: which integer this is */
|
||||||
|
@e constant_property_ANNOT /* |property|: for constant values */
|
||||||
|
@e constant_rule_ANNOT /* |rule|: for constant values */
|
||||||
|
@e constant_rulebook_ANNOT /* |rulebook|: for constant values */
|
||||||
|
@e constant_scene_ANNOT /* |scene|: for constant values */
|
||||||
|
@e constant_table_ANNOT /* |table|: for constant values */
|
||||||
|
@e constant_table_column_ANNOT /* |table_column|: for constant values */
|
||||||
|
@e constant_text_ANNOT /* |text_stream|: for constant values */
|
||||||
|
@e constant_use_option_ANNOT /* |use_option|: for constant values */
|
||||||
|
@e constant_verb_form_ANNOT /* |verb_form|: for constant values */
|
||||||
|
@e control_structure_used_ANNOT /* |control_structure_phrase|: for CODE BLOCK nodes only */
|
||||||
|
@e converted_SN_ANNOT /* |int|: marking descriptions */
|
||||||
|
@e creation_proposition_ANNOT /* |pcalc_prop|: proposition which newly created value satisfies */
|
||||||
|
@e creation_site_ANNOT /* |int|: whether an instance was created from this node */
|
||||||
|
@e defn_language_ANNOT /* |inform_language|: what language this definition is in */
|
||||||
|
@e end_control_structure_used_ANNOT /* |control_structure_phrase|: for CODE BLOCK nodes only */
|
||||||
|
@e epistemological_status_ANNOT /* |int|: a bitmap of results from checking an ambiguous reading */
|
||||||
|
@e evaluation_ANNOT /* |parse_node|: result of evaluating the text */
|
||||||
|
@e examine_for_ofs_ANNOT /* |int|: mark this as a possible site for removing "of" tree breaks */
|
||||||
|
@e explicit_iname_ANNOT /* |inter_name|: is this value explicitly an iname? */
|
||||||
|
@e explicit_literal_ANNOT /* |int|: my value is an explicit integer or text */
|
||||||
|
@e explicit_vh_ANNOT /* |value_holster|: used for compiling I6-level properties */
|
||||||
|
@e from_text_substitution_ANNOT /* |int|: whether this is an implicit say invocation */
|
||||||
|
@e grammar_token_code_ANNOT /* int: used to identify grammar tokens */
|
||||||
|
@e grammar_token_literal_ANNOT /* int: for grammar tokens which are literal words */
|
||||||
|
@e grammar_token_relation_ANNOT /* |binary_predicate|: for relation tokens */
|
||||||
|
@e grammar_value_ANNOT /* |parse_node|: used as a marker when evaluating Understand grammar */
|
||||||
|
@e imperative_ANNOT /* |int|: marking definitions of imperative verbs */
|
||||||
|
@e implicit_in_creation_of_ANNOT /* |inference_subject|: for assemblies */
|
||||||
|
@e implicitness_count_ANNOT /* int: keeping track of recursive assemblies */
|
||||||
|
@e indentation_level_ANNOT /* |int|: for routines written with Pythonesque indentation */
|
||||||
|
@e interpretation_of_subject_ANNOT /* |inference_subject|: subject, during passes */
|
||||||
|
@e is_phrase_option_ANNOT /* |int|: this unparsed text is a phrase option */
|
||||||
|
@e kind_of_new_variable_ANNOT /* |kind|: what if anything is returned */
|
||||||
|
@e kind_of_value_ANNOT /* |kind|: for specification nodes */
|
||||||
|
@e kind_required_by_context_ANNOT /* |kind|: what if anything is expected here */
|
||||||
|
@e kind_resulting_ANNOT /* |kind|: what if anything is returned */
|
||||||
|
@e kind_variable_declarations_ANNOT /* |kind_variable_declaration|: and of these */
|
||||||
|
@e listing_sense_ANNOT /* |int|: are we listing a rule into something, or out of it? */
|
||||||
|
@e log_inclusion_sense_ANNOT /* |int|: should we include or exclude this from the debugging log? */
|
||||||
|
@e lpe_options_ANNOT /* |int|: options set for a literal pattern part */
|
||||||
|
@e modal_verb_ANNOT /* |verb_conjugation|: relevant only for that: e.g., "might" */
|
||||||
|
@e module_ANNOT /* |compilation_module|: set only for headings, routines and sentences */
|
||||||
|
@e multiplicity_ANNOT /* |int|: e.g., 5 for "five gold rings" */
|
||||||
|
@e negated_boolean_ANNOT /* int: set if adjective/verb meant negatively */
|
||||||
|
@e new_relation_here_ANNOT /* |binary_predicate|: new relation as subject of "relates" sentence */
|
||||||
|
@e nothing_object_ANNOT /* |int|: this represents |nothing| at run-time */
|
||||||
|
@e nowhere_ANNOT /* |int|: used by the spatial plugin to show this represents "nowhere" */
|
||||||
|
@e phrase_invoked_ANNOT /* |phrase|: the phrase believed to be invoked... */
|
||||||
|
@e phrase_option_ANNOT /* |int|: $2^i$ where $i$ is the option number, $0\leq i<16$ */
|
||||||
|
@e phrase_options_invoked_ANNOT /* |invocation_options|: details of any options used */
|
||||||
|
@e property_name_used_as_noun_ANNOT /* |int|: in ambiguous cases such as "open" */
|
||||||
|
@e proposition_ANNOT /* |pcalc_prop|: for specification nodes */
|
||||||
|
@e prep_ANNOT /* |preposition_identity|: for e.g. "is on" */
|
||||||
|
@e quant_ANNOT /* |quantifier|: for quantified excerpts like "three baskets" */
|
||||||
|
@e quantification_parameter_ANNOT /* |int|: e.g., 3 for "three baskets" */
|
||||||
|
@e record_as_self_ANNOT /* |int|: record recipient as |self| when writing this */
|
||||||
|
@e relationship_ANNOT /* |binary_predicate|: for RELATIONSHIP nodes */
|
||||||
|
@e resolved_ANNOT /* int: temp storage when resolving NPs */
|
||||||
|
@e response_code_ANNOT /* |int|: for responses only */
|
||||||
|
@e results_from_splitting_ANNOT /* |int|: node in a routine's parse tree from comma block notation */
|
||||||
|
@e row_amendable_ANNOT /* int: a candidate row for a table amendment */
|
||||||
|
@e save_self_ANNOT /* |int|: this invocation must save and preserve |self| at run-time */
|
||||||
|
@e say_adjective_ANNOT /* |adjectival_phrase|: ...or the adjective to be agreed with by "say" */
|
||||||
|
@e say_verb_ANNOT /* |verb_conjugation|: ...or the verb to be conjugated by "say" */
|
||||||
|
@e say_verb_negated_ANNOT /* relevant only for that */
|
||||||
|
@e self_object_ANNOT /* |int|: this represents |self| at run-time */
|
||||||
|
@e slash_class_ANNOT /* int: used when partitioning grammar tokens */
|
||||||
|
@e slash_dash_dash_ANNOT /* |int|: used when partitioning grammar tokens */
|
||||||
|
@e ssp_closing_segment_wn_ANNOT /* |int|: identifier for the last of these, or |-1| */
|
||||||
|
@e ssp_segment_count_ANNOT /* |int|: number of subsequent complex-say phrases in stream */
|
||||||
|
@e subject_ANNOT /* |inference_subject|: what this node describes */
|
||||||
|
@e subject_term_ANNOT /* |pcalc_term|: what the subject of the subtree was */
|
||||||
|
@e suppress_newlines_ANNOT /* |int|: whether the next say term runs on */
|
||||||
|
@e table_cell_unspecified_ANNOT /* int: used to mark table entries as unset */
|
||||||
|
@e text_unescaped_ANNOT /* |int|: flag used only for literal texts */
|
||||||
|
@e token_as_parsed_ANNOT /* |parse_node|: what if anything is returned */
|
||||||
|
@e token_check_to_do_ANNOT /* |parse_node|: what if anything is returned */
|
||||||
|
@e token_to_be_parsed_against_ANNOT /* |parse_node|: what if anything is returned */
|
||||||
|
@e turned_already_ANNOT /* |int|: aliasing like "player" to "yourself" performed already */
|
||||||
|
@e unproven_ANNOT /* |int|: this invocation needs run-time typechecking */
|
||||||
|
@e verb_id_ANNOT /* int: identifying what kind of VERB node */
|
||||||
|
@e verb_problem_issued_ANNOT /* |int|: has a problem message about the primary verb been issued already? */
|
||||||
|
@e vu_ANNOT /* |verb_usage|: for e.g. "does not carry" */
|
||||||
|
@e you_can_ignore_ANNOT /* |int|: for assertions now drained of meaning */
|
||||||
|
|
||||||
|
= (early code)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(aph, adjectival_phrase)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(condition_tense, time_period)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(constant_activity, activity)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(constant_binary_predicate, binary_predicate)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(constant_constant_phrase, constant_phrase)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(constant_equation, equation)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(constant_instance, instance)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(constant_local_variable, local_variable)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(constant_named_rulebook_outcome, named_rulebook_outcome)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(constant_nonlocal_variable, nonlocal_variable)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(constant_property, property)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(constant_rule, rule)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(constant_rulebook, rulebook)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(constant_table_column, table_column)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(constant_table, table)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(constant_text, text_stream)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(constant_use_option, use_option)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(constant_verb_form, verb_form)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(control_structure_used, control_structure_phrase)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(creation_proposition, pcalc_prop)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(defn_language, inform_language)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(end_control_structure_used, control_structure_phrase)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(evaluation, parse_node)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(explicit_vh, value_holster)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(grammar_token_relation, binary_predicate)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(grammar_value, parse_node)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(implicit_in_creation_of, inference_subject)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(interpretation_of_subject, inference_subject)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(kind_of_new_variable, kind)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(kind_of_value, kind)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(kind_required_by_context, kind)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(kind_resulting, kind)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(kind_variable_declarations, kind_variable_declaration)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(explicit_iname, inter_name)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(modal_verb, verb_conjugation)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(module, compilation_module)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(new_relation_here, binary_predicate)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(phrase_invoked, phrase)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(phrase_options_invoked, invocation_options)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(proposition, pcalc_prop)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(prep, preposition_identity)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(quant, quantifier)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(relationship, binary_predicate)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(say_adjective, adjectival_phrase)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(say_verb, verb_conjugation)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(subject_term, pcalc_term)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(subject, inference_subject)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(token_as_parsed, parse_node)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(token_check_to_do, parse_node)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(token_to_be_parsed_against, parse_node)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(vu, verb_usage)
|
||||||
|
|
||||||
|
@ So we itemise the pointer-valued annotations below, and the macro expands
|
||||||
|
to provide their get and set functions:
|
||||||
|
|
||||||
=
|
=
|
||||||
void CoreModule::end(void) {
|
MAKE_ANNOTATION_FUNCTIONS(aph, adjectival_phrase)
|
||||||
}
|
MAKE_ANNOTATION_FUNCTIONS(condition_tense, time_period)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(constant_activity, activity)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(constant_binary_predicate, binary_predicate)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(constant_constant_phrase, constant_phrase)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(constant_equation, equation)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(constant_instance, instance)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(constant_local_variable, local_variable)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(constant_named_rulebook_outcome, named_rulebook_outcome)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(constant_nonlocal_variable, nonlocal_variable)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(constant_property, property)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(constant_rule, rule)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(constant_rulebook, rulebook)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(constant_table_column, table_column)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(constant_table, table)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(constant_text, text_stream)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(constant_use_option, use_option)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(constant_verb_form, verb_form)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(control_structure_used, control_structure_phrase)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(creation_proposition, pcalc_prop)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(defn_language, inform_language)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(end_control_structure_used, control_structure_phrase)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(evaluation, parse_node)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(explicit_vh, value_holster)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(grammar_token_relation, binary_predicate)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(grammar_value, parse_node)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(implicit_in_creation_of, inference_subject)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(interpretation_of_subject, inference_subject)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(kind_of_new_variable, kind)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(kind_of_value, kind)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(kind_required_by_context, kind)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(kind_resulting, kind)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(kind_variable_declarations, kind_variable_declaration)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(modal_verb, verb_conjugation)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(new_relation_here, binary_predicate)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(phrase_invoked, phrase)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(phrase_options_invoked, invocation_options)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(proposition, pcalc_prop)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(prep, preposition_identity)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(quant, quantifier)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(relationship, binary_predicate)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(say_adjective, adjectival_phrase)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(say_verb, verb_conjugation)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(subject_term, pcalc_term)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(subject, inference_subject)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(token_as_parsed, parse_node)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(token_check_to_do, parse_node)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(token_to_be_parsed_against, parse_node)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(vu, verb_usage)
|
||||||
|
|
|
@ -4,118 +4,6 @@ Shims for the parse tree.
|
||||||
|
|
||||||
@h Definitions.
|
@h Definitions.
|
||||||
|
|
||||||
@ Access routines will be needed for some of these, and the following
|
|
||||||
constructs them:
|
|
||||||
|
|
||||||
= (early code)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(aph, adjectival_phrase)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(condition_tense, time_period)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_activity, activity)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_binary_predicate, binary_predicate)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_constant_phrase, constant_phrase)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_equation, equation)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_instance, instance)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_local_variable, local_variable)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_named_rulebook_outcome, named_rulebook_outcome)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_nonlocal_variable, nonlocal_variable)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_property, property)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_rule, rule)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_rulebook, rulebook)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_table_column, table_column)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_table, table)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_text, text_stream)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_use_option, use_option)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_verb_form, verb_form)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(control_structure_used, control_structure_phrase)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(creation_proposition, pcalc_prop)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(defn_language, inform_language)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(end_control_structure_used, control_structure_phrase)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(evaluation, parse_node)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(explicit_vh, value_holster)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(grammar_token_relation, binary_predicate)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(grammar_value, parse_node)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(implicit_in_creation_of, inference_subject)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(interpretation_of_subject, inference_subject)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(kind_of_new_variable, kind)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(kind_of_value, kind)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(kind_required_by_context, kind)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(kind_resulting, kind)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(kind_variable_declarations, kind_variable_declaration)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(explicit_iname, inter_name)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(modal_verb, verb_conjugation)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(module, compilation_module)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(new_relation_here, binary_predicate)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(phrase_invoked, phrase)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(phrase_options_invoked, invocation_options)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(proposition, pcalc_prop)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(prep, preposition_identity)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(quant, quantifier)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(relationship, binary_predicate)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(say_adjective, adjectival_phrase)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(say_verb, verb_conjugation)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(subject_term, pcalc_term)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(subject, inference_subject)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(token_as_parsed, parse_node)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(token_check_to_do, parse_node)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(token_to_be_parsed_against, parse_node)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(vu, verb_usage)
|
|
||||||
|
|
||||||
@ So we itemise the pointer-valued annotations below, and the macro expands
|
|
||||||
to provide their get and set functions:
|
|
||||||
|
|
||||||
=
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(aph, adjectival_phrase)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(condition_tense, time_period)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(constant_activity, activity)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(constant_binary_predicate, binary_predicate)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(constant_constant_phrase, constant_phrase)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(constant_equation, equation)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(constant_instance, instance)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(constant_local_variable, local_variable)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(constant_named_rulebook_outcome, named_rulebook_outcome)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(constant_nonlocal_variable, nonlocal_variable)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(constant_property, property)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(constant_rule, rule)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(constant_rulebook, rulebook)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(constant_table_column, table_column)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(constant_table, table)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(constant_text, text_stream)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(constant_use_option, use_option)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(constant_verb_form, verb_form)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(control_structure_used, control_structure_phrase)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(creation_proposition, pcalc_prop)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(defn_language, inform_language)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(end_control_structure_used, control_structure_phrase)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(evaluation, parse_node)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(explicit_vh, value_holster)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(grammar_token_relation, binary_predicate)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(grammar_value, parse_node)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(implicit_in_creation_of, inference_subject)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(interpretation_of_subject, inference_subject)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(kind_of_new_variable, kind)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(kind_of_value, kind)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(kind_required_by_context, kind)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(kind_resulting, kind)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(kind_variable_declarations, kind_variable_declaration)
|
|
||||||
// see codegen module for (explicit_iname, inter_name)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(modal_verb, verb_conjugation)
|
|
||||||
// see codegen module for (module, compilation_module)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(new_relation_here, binary_predicate)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(phrase_invoked, phrase)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(phrase_options_invoked, invocation_options)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(proposition, pcalc_prop)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(prep, preposition_identity)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(quant, quantifier)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(relationship, binary_predicate)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(say_adjective, adjectival_phrase)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(say_verb, verb_conjugation)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(subject_term, pcalc_term)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(subject, inference_subject)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(token_as_parsed, parse_node)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(token_check_to_do, parse_node)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(token_to_be_parsed_against, parse_node)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(vu, verb_usage)
|
|
||||||
|
|
||||||
@
|
@
|
||||||
|
|
||||||
@d PARSE_TREE_COPIER ParseTreeUsage::copy_annotations
|
@d PARSE_TREE_COPIER ParseTreeUsage::copy_annotations
|
||||||
|
@ -201,114 +89,6 @@ also makes it easier for us to manipulate the results.
|
||||||
@e TEST_PHRASE_OPTION_NT /* "giving full details", say */
|
@e TEST_PHRASE_OPTION_NT /* "giving full details", say */
|
||||||
@e TEST_VALUE_NT /* when a value is used as a condition */
|
@e TEST_VALUE_NT /* when a value is used as a condition */
|
||||||
|
|
||||||
@ This is a little like itemising the baubles on a Christmas tree, but here
|
|
||||||
goes. The annotations used are identified by nonzero ID numbers, as follows:
|
|
||||||
|
|
||||||
@e action_meaning_ANNOT /* |action_pattern|: meaning in parse tree when used as noun */
|
|
||||||
@e aph_ANNOT /* |adjectival_phrase|: which adjective is asserted */
|
|
||||||
@e category_of_I6_translation_ANNOT /* int: what sort of "translates into I6" sentence this is */
|
|
||||||
@e clears_pronouns_ANNOT /* |int|: this sentence erases the current value of "it" */
|
|
||||||
@e colon_block_command_ANNOT /* int: this COMMAND uses the ":" not begin/end syntax */
|
|
||||||
@e condition_tense_ANNOT /* |time_period|: for specification nodes */
|
|
||||||
@e constant_action_name_ANNOT /* |action_name|: for constant values */
|
|
||||||
@e constant_action_pattern_ANNOT /* |action_pattern|: for constant values */
|
|
||||||
@e constant_activity_ANNOT /* |activity|: for constant values */
|
|
||||||
@e constant_binary_predicate_ANNOT /* |binary_predicate|: for constant values */
|
|
||||||
@e constant_constant_phrase_ANNOT /* |constant_phrase|: for constant values */
|
|
||||||
@e constant_enumeration_ANNOT /* |int|: which one from an enumerated kind */
|
|
||||||
@e constant_equation_ANNOT /* |equation|: for constant values */
|
|
||||||
@e constant_grammar_verb_ANNOT /* |grammar_verb|: for constant values */
|
|
||||||
@e constant_instance_ANNOT /* |instance|: for constant values */
|
|
||||||
@e constant_local_variable_ANNOT /* |local_variable|: for constant values */
|
|
||||||
@e constant_named_action_pattern_ANNOT /* |named_action_pattern|: for constant values */
|
|
||||||
@e constant_named_rulebook_outcome_ANNOT /* |named_rulebook_outcome|: for constant values */
|
|
||||||
@e constant_nonlocal_variable_ANNOT /* |nonlocal_variable|: for constant values */
|
|
||||||
@e constant_number_ANNOT /* |int|: which integer this is */
|
|
||||||
@e constant_property_ANNOT /* |property|: for constant values */
|
|
||||||
@e constant_rule_ANNOT /* |rule|: for constant values */
|
|
||||||
@e constant_rulebook_ANNOT /* |rulebook|: for constant values */
|
|
||||||
@e constant_scene_ANNOT /* |scene|: for constant values */
|
|
||||||
@e constant_table_ANNOT /* |table|: for constant values */
|
|
||||||
@e constant_table_column_ANNOT /* |table_column|: for constant values */
|
|
||||||
@e constant_text_ANNOT /* |text_stream|: for constant values */
|
|
||||||
@e constant_use_option_ANNOT /* |use_option|: for constant values */
|
|
||||||
@e constant_verb_form_ANNOT /* |verb_form|: for constant values */
|
|
||||||
@e control_structure_used_ANNOT /* |control_structure_phrase|: for CODE BLOCK nodes only */
|
|
||||||
@e converted_SN_ANNOT /* |int|: marking descriptions */
|
|
||||||
@e creation_proposition_ANNOT /* |pcalc_prop|: proposition which newly created value satisfies */
|
|
||||||
@e creation_site_ANNOT /* |int|: whether an instance was created from this node */
|
|
||||||
@e defn_language_ANNOT /* |inform_language|: what language this definition is in */
|
|
||||||
@e end_control_structure_used_ANNOT /* |control_structure_phrase|: for CODE BLOCK nodes only */
|
|
||||||
@e epistemological_status_ANNOT /* |int|: a bitmap of results from checking an ambiguous reading */
|
|
||||||
@e evaluation_ANNOT /* |parse_node|: result of evaluating the text */
|
|
||||||
@e examine_for_ofs_ANNOT /* |int|: mark this as a possible site for removing "of" tree breaks */
|
|
||||||
@e explicit_iname_ANNOT /* |inter_name|: is this value explicitly an iname? */
|
|
||||||
@e explicit_literal_ANNOT /* |int|: my value is an explicit integer or text */
|
|
||||||
@e explicit_vh_ANNOT /* |value_holster|: used for compiling I6-level properties */
|
|
||||||
@e from_text_substitution_ANNOT /* |int|: whether this is an implicit say invocation */
|
|
||||||
@e grammar_token_code_ANNOT /* int: used to identify grammar tokens */
|
|
||||||
@e grammar_token_literal_ANNOT /* int: for grammar tokens which are literal words */
|
|
||||||
@e grammar_token_relation_ANNOT /* |binary_predicate|: for relation tokens */
|
|
||||||
@e grammar_value_ANNOT /* |parse_node|: used as a marker when evaluating Understand grammar */
|
|
||||||
@e imperative_ANNOT /* |int|: marking definitions of imperative verbs */
|
|
||||||
@e implicit_in_creation_of_ANNOT /* |inference_subject|: for assemblies */
|
|
||||||
@e implicitness_count_ANNOT /* int: keeping track of recursive assemblies */
|
|
||||||
@e indentation_level_ANNOT /* |int|: for routines written with Pythonesque indentation */
|
|
||||||
@e interpretation_of_subject_ANNOT /* |inference_subject|: subject, during passes */
|
|
||||||
@e is_phrase_option_ANNOT /* |int|: this unparsed text is a phrase option */
|
|
||||||
@e kind_of_new_variable_ANNOT /* |kind|: what if anything is returned */
|
|
||||||
@e kind_of_value_ANNOT /* |kind|: for specification nodes */
|
|
||||||
@e kind_required_by_context_ANNOT /* |kind|: what if anything is expected here */
|
|
||||||
@e kind_resulting_ANNOT /* |kind|: what if anything is returned */
|
|
||||||
@e kind_variable_declarations_ANNOT /* |kind_variable_declaration|: and of these */
|
|
||||||
@e listing_sense_ANNOT /* |int|: are we listing a rule into something, or out of it? */
|
|
||||||
@e log_inclusion_sense_ANNOT /* |int|: should we include or exclude this from the debugging log? */
|
|
||||||
@e lpe_options_ANNOT /* |int|: options set for a literal pattern part */
|
|
||||||
@e modal_verb_ANNOT /* |verb_conjugation|: relevant only for that: e.g., "might" */
|
|
||||||
@e module_ANNOT /* |compilation_module|: set only for headings, routines and sentences */
|
|
||||||
@e multiplicity_ANNOT /* |int|: e.g., 5 for "five gold rings" */
|
|
||||||
@e negated_boolean_ANNOT /* int: set if adjective/verb meant negatively */
|
|
||||||
@e new_relation_here_ANNOT /* |binary_predicate|: new relation as subject of "relates" sentence */
|
|
||||||
@e nothing_object_ANNOT /* |int|: this represents |nothing| at run-time */
|
|
||||||
@e nowhere_ANNOT /* |int|: used by the spatial plugin to show this represents "nowhere" */
|
|
||||||
@e phrase_invoked_ANNOT /* |phrase|: the phrase believed to be invoked... */
|
|
||||||
@e phrase_option_ANNOT /* |int|: $2^i$ where $i$ is the option number, $0\leq i<16$ */
|
|
||||||
@e phrase_options_invoked_ANNOT /* |invocation_options|: details of any options used */
|
|
||||||
@e property_name_used_as_noun_ANNOT /* |int|: in ambiguous cases such as "open" */
|
|
||||||
@e proposition_ANNOT /* |pcalc_prop|: for specification nodes */
|
|
||||||
@e prep_ANNOT /* |preposition_identity|: for e.g. "is on" */
|
|
||||||
@e quant_ANNOT /* |quantifier|: for quantified excerpts like "three baskets" */
|
|
||||||
@e quantification_parameter_ANNOT /* |int|: e.g., 3 for "three baskets" */
|
|
||||||
@e record_as_self_ANNOT /* |int|: record recipient as |self| when writing this */
|
|
||||||
@e relationship_ANNOT /* |binary_predicate|: for RELATIONSHIP nodes */
|
|
||||||
@e resolved_ANNOT /* int: temp storage when resolving NPs */
|
|
||||||
@e response_code_ANNOT /* |int|: for responses only */
|
|
||||||
@e results_from_splitting_ANNOT /* |int|: node in a routine's parse tree from comma block notation */
|
|
||||||
@e row_amendable_ANNOT /* int: a candidate row for a table amendment */
|
|
||||||
@e save_self_ANNOT /* |int|: this invocation must save and preserve |self| at run-time */
|
|
||||||
@e say_adjective_ANNOT /* |adjectival_phrase|: ...or the adjective to be agreed with by "say" */
|
|
||||||
@e say_verb_ANNOT /* |verb_conjugation|: ...or the verb to be conjugated by "say" */
|
|
||||||
@e say_verb_negated_ANNOT /* relevant only for that */
|
|
||||||
@e self_object_ANNOT /* |int|: this represents |self| at run-time */
|
|
||||||
@e slash_class_ANNOT /* int: used when partitioning grammar tokens */
|
|
||||||
@e slash_dash_dash_ANNOT /* |int|: used when partitioning grammar tokens */
|
|
||||||
@e ssp_closing_segment_wn_ANNOT /* |int|: identifier for the last of these, or |-1| */
|
|
||||||
@e ssp_segment_count_ANNOT /* |int|: number of subsequent complex-say phrases in stream */
|
|
||||||
@e subject_ANNOT /* |inference_subject|: what this node describes */
|
|
||||||
@e subject_term_ANNOT /* |pcalc_term|: what the subject of the subtree was */
|
|
||||||
@e suppress_newlines_ANNOT /* |int|: whether the next say term runs on */
|
|
||||||
@e table_cell_unspecified_ANNOT /* int: used to mark table entries as unset */
|
|
||||||
@e text_unescaped_ANNOT /* |int|: flag used only for literal texts */
|
|
||||||
@e token_as_parsed_ANNOT /* |parse_node|: what if anything is returned */
|
|
||||||
@e token_check_to_do_ANNOT /* |parse_node|: what if anything is returned */
|
|
||||||
@e token_to_be_parsed_against_ANNOT /* |parse_node|: what if anything is returned */
|
|
||||||
@e turned_already_ANNOT /* |int|: aliasing like "player" to "yourself" performed already */
|
|
||||||
@e unproven_ANNOT /* |int|: this invocation needs run-time typechecking */
|
|
||||||
@e verb_id_ANNOT /* int: identifying what kind of VERB node */
|
|
||||||
@e verb_problem_issued_ANNOT /* |int|: has a problem message about the primary verb been issued already? */
|
|
||||||
@e vu_ANNOT /* |verb_usage|: for e.g. "does not carry" */
|
|
||||||
@e you_can_ignore_ANNOT /* |int|: for assertions now drained of meaning */
|
|
||||||
|
|
||||||
@
|
@
|
||||||
|
|
||||||
@e L4_NCAT
|
@e L4_NCAT
|
||||||
|
|
|
@ -2,17 +2,9 @@
|
||||||
|
|
||||||
Setting up the use of this module.
|
Setting up the use of this module.
|
||||||
|
|
||||||
@h Predeclarations.
|
@ This section simoly sets up the module in ways expected by |foundation|, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
= (early code)
|
which use this module:
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(action_meaning, action_pattern)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_action_name, action_name)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_action_pattern, action_pattern)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_grammar_verb, grammar_verb)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_named_action_pattern, named_action_pattern)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(constant_scene, scene)
|
|
||||||
|
|
||||||
@h Introduction.
|
|
||||||
|
|
||||||
@d IF_MODULE TRUE
|
@d IF_MODULE TRUE
|
||||||
|
|
||||||
|
@ -104,11 +96,16 @@ COMPILE_WRITER(action_name_list *, PL::Actions::Lists::log)
|
||||||
COMPILE_WRITER(action_name *, PL::Actions::log)
|
COMPILE_WRITER(action_name *, PL::Actions::log)
|
||||||
|
|
||||||
void IFModule::start(void) {
|
void IFModule::start(void) {
|
||||||
|
@<Register this module's memory allocation reasons@>;
|
||||||
@<Register this module's stream writers@>;
|
@<Register this module's stream writers@>;
|
||||||
@<Register this module's debugging log aspects@>;
|
@<Register this module's debugging log aspects@>;
|
||||||
@<Register this module's debugging log writers@>;
|
@<Register this module's debugging log writers@>;
|
||||||
@<Register this module's command line switches@>;
|
|
||||||
}
|
}
|
||||||
|
void IFModule::end(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@<Register this module's memory allocation reasons@> =
|
||||||
|
;
|
||||||
|
|
||||||
@<Register this module's stream writers@> =
|
@<Register this module's stream writers@> =
|
||||||
;
|
;
|
||||||
|
@ -129,11 +126,13 @@ void IFModule::start(void) {
|
||||||
REGISTER_WRITER('L', PL::Actions::Lists::log);
|
REGISTER_WRITER('L', PL::Actions::Lists::log);
|
||||||
REGISTER_WRITER('l', PL::Actions::log);
|
REGISTER_WRITER('l', PL::Actions::log);
|
||||||
|
|
||||||
@<Register this module's command line switches@> =
|
@ This module uses |syntax|, and adds the following annotations to the
|
||||||
;
|
syntax tree.
|
||||||
|
|
||||||
@h The end.
|
= (early code)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(action_meaning, action_pattern)
|
||||||
=
|
DECLARE_ANNOTATION_FUNCTIONS(constant_action_name, action_name)
|
||||||
void IFModule::end(void) {
|
DECLARE_ANNOTATION_FUNCTIONS(constant_action_pattern, action_pattern)
|
||||||
}
|
DECLARE_ANNOTATION_FUNCTIONS(constant_grammar_verb, grammar_verb)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(constant_named_action_pattern, named_action_pattern)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(constant_scene, scene)
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
|
|
||||||
Setting up the use of this module.
|
Setting up the use of this module.
|
||||||
|
|
||||||
@h Introduction.
|
@ This section simoly sets up the module in ways expected by |foundation|, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
|
which use this module:
|
||||||
|
|
||||||
@d INDEX_MODULE TRUE
|
@d INDEX_MODULE TRUE
|
||||||
|
|
||||||
|
@ -19,16 +21,20 @@ ALLOCATE_INDIVIDUALLY(index_element)
|
||||||
ALLOCATE_INDIVIDUALLY(index_page)
|
ALLOCATE_INDIVIDUALLY(index_page)
|
||||||
ALLOCATE_INDIVIDUALLY(lexicon_entry)
|
ALLOCATE_INDIVIDUALLY(lexicon_entry)
|
||||||
|
|
||||||
@h The beginning.
|
@ Like all modules, this one must define a |start| and |end| function:
|
||||||
(The client doesn't need to call the start and end routines, because the
|
|
||||||
foundation module does that automatically.)
|
|
||||||
|
|
||||||
=
|
=
|
||||||
void IndexModule::start(void) {
|
void IndexModule::start(void) {
|
||||||
|
@<Register this module's memory allocation reasons@>;
|
||||||
@<Register this module's stream writers@>;
|
@<Register this module's stream writers@>;
|
||||||
@<Register this module's debugging log aspects@>;
|
@<Register this module's debugging log aspects@>;
|
||||||
@<Register this module's debugging log writers@>;
|
@<Register this module's debugging log writers@>;
|
||||||
}
|
}
|
||||||
|
void IndexModule::end(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@<Register this module's memory allocation reasons@> =
|
||||||
|
;
|
||||||
|
|
||||||
@<Register this module's stream writers@> =
|
@<Register this module's stream writers@> =
|
||||||
;
|
;
|
||||||
|
@ -38,9 +44,3 @@ void IndexModule::start(void) {
|
||||||
|
|
||||||
@<Register this module's debugging log writers@> =
|
@<Register this module's debugging log writers@> =
|
||||||
;
|
;
|
||||||
|
|
||||||
@h The end.
|
|
||||||
|
|
||||||
=
|
|
||||||
void IndexModule::end(void) {
|
|
||||||
}
|
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
|
|
||||||
Setting up the use of this module.
|
Setting up the use of this module.
|
||||||
|
|
||||||
@h Introduction.
|
@ This section simoly sets up the module in ways expected by |foundation|, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
|
which use this module:
|
||||||
|
|
||||||
@d INFLECTIONS_MODULE TRUE
|
@d INFLECTIONS_MODULE TRUE
|
||||||
|
|
||||||
|
@ -19,9 +21,7 @@ ALLOCATE_INDIVIDUALLY(name_cluster)
|
||||||
ALLOCATE_INDIVIDUALLY(plural_dictionary_entry)
|
ALLOCATE_INDIVIDUALLY(plural_dictionary_entry)
|
||||||
ALLOCATE_INDIVIDUALLY(verb_conjugation)
|
ALLOCATE_INDIVIDUALLY(verb_conjugation)
|
||||||
|
|
||||||
@h The beginning.
|
@ Like all modules, this one must define a |start| and |end| function:
|
||||||
(The client doesn't need to call the start and end routines, because the
|
|
||||||
foundation module does that automatically.)
|
|
||||||
|
|
||||||
=
|
=
|
||||||
void InflectionsModule::start(void) {
|
void InflectionsModule::start(void) {
|
||||||
|
@ -30,6 +30,8 @@ void InflectionsModule::start(void) {
|
||||||
@<Register this module's debugging log writers@>;
|
@<Register this module's debugging log writers@>;
|
||||||
@<Register this module's command line switches@>;
|
@<Register this module's command line switches@>;
|
||||||
}
|
}
|
||||||
|
void InflectionsModule::end(void) {
|
||||||
|
}
|
||||||
|
|
||||||
@<Register this module's stream writers@> =
|
@<Register this module's stream writers@> =
|
||||||
;
|
;
|
||||||
|
@ -48,9 +50,3 @@ void InflectionsModule::start(void) {
|
||||||
|
|
||||||
@<Register this module's command line switches@> =
|
@<Register this module's command line switches@> =
|
||||||
;
|
;
|
||||||
|
|
||||||
@h The end.
|
|
||||||
|
|
||||||
=
|
|
||||||
void InflectionsModule::end(void) {
|
|
||||||
}
|
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
|
|
||||||
Setting up the use of this module.
|
Setting up the use of this module.
|
||||||
|
|
||||||
@h Introduction.
|
@ This section simoly sets up the module in ways expected by |foundation|, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
|
which use this module:
|
||||||
|
|
||||||
@d KINDS_MODULE TRUE
|
@d KINDS_MODULE TRUE
|
||||||
|
|
||||||
|
@ -33,17 +35,20 @@ ALLOCATE_IN_ARRAYS(kind_constructor_comparison_schema, 100)
|
||||||
ALLOCATE_IN_ARRAYS(kind_constructor_instance, 100)
|
ALLOCATE_IN_ARRAYS(kind_constructor_instance, 100)
|
||||||
ALLOCATE_IN_ARRAYS(unit_sequence, 50)
|
ALLOCATE_IN_ARRAYS(unit_sequence, 50)
|
||||||
|
|
||||||
@h The beginning.
|
@ Like all modules, this one must define a |start| and |end| function:
|
||||||
(The client doesn't need to call the start and end routines, because the
|
|
||||||
foundation module does that automatically.)
|
|
||||||
|
|
||||||
=
|
=
|
||||||
void KindsModule::start(void) {
|
void KindsModule::start(void) {
|
||||||
|
@<Register this module's memory allocation reasons@>;
|
||||||
@<Register this module's stream writers@>;
|
@<Register this module's stream writers@>;
|
||||||
@<Register this module's debugging log aspects@>;
|
@<Register this module's debugging log aspects@>;
|
||||||
@<Register this module's debugging log writers@>;
|
@<Register this module's debugging log writers@>;
|
||||||
@<Register this module's command line switches@>;
|
|
||||||
}
|
}
|
||||||
|
void KindsModule::end(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@<Register this module's memory allocation reasons@> =
|
||||||
|
;
|
||||||
|
|
||||||
@<Register this module's stream writers@> =
|
@<Register this module's stream writers@> =
|
||||||
;
|
;
|
||||||
|
@ -63,12 +68,3 @@ void KindsModule::start(void) {
|
||||||
|
|
||||||
@<Register this module's debugging log writers@> =
|
@<Register this module's debugging log writers@> =
|
||||||
;
|
;
|
||||||
|
|
||||||
@<Register this module's command line switches@> =
|
|
||||||
;
|
|
||||||
|
|
||||||
@h The end.
|
|
||||||
|
|
||||||
=
|
|
||||||
void KindsModule::end(void) {
|
|
||||||
}
|
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
|
|
||||||
Setting up the use of this module.
|
Setting up the use of this module.
|
||||||
|
|
||||||
@h Introduction.
|
@ This section simoly sets up the module in ways expected by |foundation|, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
|
which use this module:
|
||||||
|
|
||||||
@d LINGUISTICS_MODULE TRUE
|
@d LINGUISTICS_MODULE TRUE
|
||||||
|
|
||||||
|
@ -39,21 +41,24 @@ ALLOCATE_IN_ARRAYS(time_period, 100)
|
||||||
ALLOCATE_INDIVIDUALLY(excerpt_meaning)
|
ALLOCATE_INDIVIDUALLY(excerpt_meaning)
|
||||||
ALLOCATE_INDIVIDUALLY(noun)
|
ALLOCATE_INDIVIDUALLY(noun)
|
||||||
|
|
||||||
@h The beginning.
|
@ Like all modules, this one must define a |start| and |end| function:
|
||||||
(The client doesn't need to call the start and end routines, because the
|
|
||||||
foundation module does that automatically.)
|
|
||||||
|
|
||||||
=
|
=
|
||||||
void LinguisticsModule::start(void) {
|
void LinguisticsModule::start(void) {
|
||||||
|
@<Register this module's memory allocation reasons@>;
|
||||||
@<Register this module's stream writers@>;
|
@<Register this module's stream writers@>;
|
||||||
@<Register this module's debugging log aspects@>;
|
@<Register this module's debugging log aspects@>;
|
||||||
@<Register this module's debugging log writers@>;
|
@<Register this module's debugging log writers@>;
|
||||||
@<Register this module's command line switches@>;
|
|
||||||
Cardinals::enable_in_word_form();
|
Cardinals::enable_in_word_form();
|
||||||
Articles::mark_for_preform();
|
Articles::mark_for_preform();
|
||||||
Prepositions::mark_for_preform();
|
Prepositions::mark_for_preform();
|
||||||
Diagrams::setup();
|
Diagrams::setup();
|
||||||
}
|
}
|
||||||
|
void LinguisticsModule::end(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@<Register this module's memory allocation reasons@> =
|
||||||
|
;
|
||||||
|
|
||||||
@<Register this module's stream writers@> =
|
@<Register this module's stream writers@> =
|
||||||
;
|
;
|
||||||
|
@ -80,20 +85,47 @@ void LinguisticsModule::start(void) {
|
||||||
Writers::register_logger('w', Verbs::log_verb);
|
Writers::register_logger('w', Verbs::log_verb);
|
||||||
Writers::register_logger('y', VerbMeanings::log);
|
Writers::register_logger('y', VerbMeanings::log);
|
||||||
|
|
||||||
|
@ This module uses |syntax|, and adds the following annotations to the
|
||||||
|
syntax tree.
|
||||||
|
|
||||||
@<Register this module's command line switches@> =
|
@e meaning_ANNOT /* |excerpt_meaning|: for leaves */
|
||||||
;
|
|
||||||
|
|
||||||
@ =
|
@e verbal_certainty_ANNOT /* |int|: certainty level if known */
|
||||||
|
@e sentence_is_existential_ANNOT /* |int|: such as "there is a man" */
|
||||||
|
@e linguistic_error_here_ANNOT /* |int|: one of the errors occurred here */
|
||||||
|
@e inverted_verb_ANNOT /* |int|: an inversion of subject and object has occurred */
|
||||||
|
@e possessive_verb_ANNOT /* |int|: this is a non-relative use of "to have" */
|
||||||
|
@e verb_ANNOT /* |verb_usage|: what's being done here */
|
||||||
|
@e preposition_ANNOT /* |preposition_identity|: which preposition, if any, qualifies it */
|
||||||
|
@e second_preposition_ANNOT /* |preposition_identity|: which further preposition, if any, qualifies it */
|
||||||
|
@e verb_meaning_ANNOT /* |verb_meaning|: what it means */
|
||||||
|
|
||||||
|
@e nounphrase_article_ANNOT /* |int|: definite or indefinite article: see below */
|
||||||
|
@e plural_reference_ANNOT /* |int|: used by PROPER NOUN nodes for evident plurals */
|
||||||
|
@e gender_reference_ANNOT /* |int|: used by PROPER NOUN nodes for evident genders */
|
||||||
|
@e relationship_node_type_ANNOT /* |int|: what kind of inference this assertion makes */
|
||||||
|
@e implicitly_refers_to_ANNOT /* |int|: this will implicitly refer to something */
|
||||||
|
|
||||||
|
=
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(meaning, excerpt_meaning)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(verb, verb_usage)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(preposition, preposition_identity)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(second_preposition, preposition_identity)
|
||||||
|
DECLARE_ANNOTATION_FUNCTIONS(verb_meaning, verb_meaning)
|
||||||
|
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(meaning, excerpt_meaning)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(verb, verb_usage)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(preposition, preposition_identity)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(second_preposition, preposition_identity)
|
||||||
|
MAKE_ANNOTATION_FUNCTIONS(verb_meaning, verb_meaning)
|
||||||
|
|
||||||
|
@ This module requires |words|, which contains the Preform parser. When that
|
||||||
|
initialises, it calls the following routine to improve its performance.
|
||||||
|
|
||||||
|
=
|
||||||
void LinguisticsModule::preform_optimiser(void) {
|
void LinguisticsModule::preform_optimiser(void) {
|
||||||
Cardinals::preform_optimiser();
|
Cardinals::preform_optimiser();
|
||||||
VerbUsages::preform_optimiser();
|
VerbUsages::preform_optimiser();
|
||||||
Prepositions::preform_optimiser();
|
Prepositions::preform_optimiser();
|
||||||
Quantifiers::make_built_in();
|
Quantifiers::make_built_in();
|
||||||
}
|
}
|
||||||
|
|
||||||
@h The end.
|
|
||||||
|
|
||||||
=
|
|
||||||
void LinguisticsModule::end(void) {
|
|
||||||
}
|
|
||||||
|
|
|
@ -64,15 +64,6 @@ typedef struct excerpt_meaning {
|
||||||
MEMORY_MANAGEMENT
|
MEMORY_MANAGEMENT
|
||||||
} excerpt_meaning;
|
} excerpt_meaning;
|
||||||
|
|
||||||
@ Annotations:
|
|
||||||
|
|
||||||
@e meaning_ANNOT /* |excerpt_meaning|: for leaves */
|
|
||||||
|
|
||||||
=
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(meaning, excerpt_meaning)
|
|
||||||
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(meaning, excerpt_meaning)
|
|
||||||
|
|
||||||
@h Meaning codes.
|
@h Meaning codes.
|
||||||
These assign a context to a meaning, and so decide how the |data| pointer for
|
These assign a context to a meaning, and so decide how the |data| pointer for
|
||||||
an excerpt meaning is to interpreted. For instance, "Persian carpet" might
|
an excerpt meaning is to interpreted. For instance, "Persian carpet" might
|
||||||
|
|
|
@ -16,38 +16,11 @@ To construct standard verb-phrase nodes in the parse tree.
|
||||||
@e KIND_NT /* "A woman is a kind of person" */
|
@e KIND_NT /* "A woman is a kind of person" */
|
||||||
@e PROPERTY_LIST_NT /* "capacity 2" */
|
@e PROPERTY_LIST_NT /* "capacity 2" */
|
||||||
|
|
||||||
@e verbal_certainty_ANNOT /* |int|: certainty level if known */
|
|
||||||
@e sentence_is_existential_ANNOT /* |int|: such as "there is a man" */
|
|
||||||
@e linguistic_error_here_ANNOT /* |int|: one of the errors occurred here */
|
|
||||||
@e inverted_verb_ANNOT /* |int|: an inversion of subject and object has occurred */
|
|
||||||
@e possessive_verb_ANNOT /* |int|: this is a non-relative use of "to have" */
|
|
||||||
@e verb_ANNOT /* |verb_usage|: what's being done here */
|
|
||||||
@e preposition_ANNOT /* |preposition_identity|: which preposition, if any, qualifies it */
|
|
||||||
@e second_preposition_ANNOT /* |preposition_identity|: which further preposition, if any, qualifies it */
|
|
||||||
@e verb_meaning_ANNOT /* |verb_meaning|: what it means */
|
|
||||||
|
|
||||||
@e nounphrase_article_ANNOT /* |int|: definite or indefinite article: see below */
|
|
||||||
@e plural_reference_ANNOT /* |int|: used by PROPER NOUN nodes for evident plurals */
|
|
||||||
@e gender_reference_ANNOT /* |int|: used by PROPER NOUN nodes for evident genders */
|
|
||||||
@e relationship_node_type_ANNOT /* |int|: what kind of inference this assertion makes */
|
|
||||||
@e implicitly_refers_to_ANNOT /* |int|: this will implicitly refer to something */
|
|
||||||
|
|
||||||
@d ASSERT_NFLAG 0x00000008 /* allow this on either side of an assertion? */
|
@d ASSERT_NFLAG 0x00000008 /* allow this on either side of an assertion? */
|
||||||
|
|
||||||
@e TwoLikelihoods_LINERROR
|
@e TwoLikelihoods_LINERROR
|
||||||
|
|
||||||
=
|
=
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(verb, verb_usage)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(preposition, preposition_identity)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(second_preposition, preposition_identity)
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(verb_meaning, verb_meaning)
|
|
||||||
|
|
||||||
@ =
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(verb, verb_usage)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(preposition, preposition_identity)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(second_preposition, preposition_identity)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(verb_meaning, verb_meaning)
|
|
||||||
|
|
||||||
void Diagrams::setup(void) {
|
void Diagrams::setup(void) {
|
||||||
ParseTree::md((parse_tree_node_type) { AVERB_NT, "AVERB_NT", 0, 0, L3_NCAT, 0 });
|
ParseTree::md((parse_tree_node_type) { AVERB_NT, "AVERB_NT", 0, 0, L3_NCAT, 0 });
|
||||||
ParseTree::md((parse_tree_node_type) { RELATIONSHIP_NT, "RELATIONSHIP_NT", 0, 2, L3_NCAT, ASSERT_NFLAG });
|
ParseTree::md((parse_tree_node_type) { RELATIONSHIP_NT, "RELATIONSHIP_NT", 0, 2, L3_NCAT, ASSERT_NFLAG });
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
|
|
||||||
Setting up the use of this module.
|
Setting up the use of this module.
|
||||||
|
|
||||||
@h Introduction.
|
@ This section simoly sets up the module in ways expected by |foundation|, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
|
which use this module:
|
||||||
|
|
||||||
@d MULTIMEDIA_MODULE TRUE
|
@d MULTIMEDIA_MODULE TRUE
|
||||||
|
|
||||||
|
@ -17,17 +19,20 @@ ALLOCATE_INDIVIDUALLY(blorb_figure)
|
||||||
ALLOCATE_INDIVIDUALLY(blorb_sound)
|
ALLOCATE_INDIVIDUALLY(blorb_sound)
|
||||||
ALLOCATE_INDIVIDUALLY(external_file)
|
ALLOCATE_INDIVIDUALLY(external_file)
|
||||||
|
|
||||||
@h The beginning.
|
@ Like all modules, this one must define a |start| and |end| function:
|
||||||
(The client doesn't need to call the start and end routines, because the
|
|
||||||
foundation module does that automatically.)
|
|
||||||
|
|
||||||
=
|
=
|
||||||
void MultimediaModule::start(void) {
|
void MultimediaModule::start(void) {
|
||||||
|
@<Register this module's memory allocation reasons@>;
|
||||||
@<Register this module's stream writers@>;
|
@<Register this module's stream writers@>;
|
||||||
@<Register this module's debugging log aspects@>;
|
@<Register this module's debugging log aspects@>;
|
||||||
@<Register this module's debugging log writers@>;
|
@<Register this module's debugging log writers@>;
|
||||||
@<Register this module's command line switches@>;
|
|
||||||
}
|
}
|
||||||
|
void MultimediaModule::end(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@<Register this module's memory allocation reasons@> =
|
||||||
|
;
|
||||||
|
|
||||||
@<Register this module's stream writers@> =
|
@<Register this module's stream writers@> =
|
||||||
;
|
;
|
||||||
|
@ -37,12 +42,3 @@ void MultimediaModule::start(void) {
|
||||||
|
|
||||||
@<Register this module's debugging log writers@> =
|
@<Register this module's debugging log writers@> =
|
||||||
;
|
;
|
||||||
|
|
||||||
@<Register this module's command line switches@> =
|
|
||||||
;
|
|
||||||
|
|
||||||
@h The end.
|
|
||||||
|
|
||||||
=
|
|
||||||
void MultimediaModule::end(void) {
|
|
||||||
}
|
|
||||||
|
|
|
@ -2,30 +2,27 @@
|
||||||
|
|
||||||
Setting up the use of this module.
|
Setting up the use of this module.
|
||||||
|
|
||||||
@h Introduction.
|
@ This section simoly sets up the module in ways expected by |foundation|, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
|
which use this module:
|
||||||
|
|
||||||
@d PROBLEMS_MODULE TRUE
|
@d PROBLEMS_MODULE TRUE
|
||||||
|
|
||||||
@h Annotations.
|
@ Like all modules, this one must define a |start| and |end| function:
|
||||||
|
|
||||||
@e problem_falls_under_ANNOT /* |parse_node|: what heading the sentence falls under */
|
|
||||||
|
|
||||||
=
|
|
||||||
DECLARE_ANNOTATION_FUNCTIONS(problem_falls_under, parse_node)
|
|
||||||
MAKE_ANNOTATION_FUNCTIONS(problem_falls_under, parse_node)
|
|
||||||
|
|
||||||
@h The beginning.
|
|
||||||
(The client doesn't need to call the start and end routines, because the
|
|
||||||
foundation module does that automatically.)
|
|
||||||
|
|
||||||
=
|
=
|
||||||
void ProblemsModule::start(void) {
|
void ProblemsModule::start(void) {
|
||||||
|
@<Register this module's memory allocation reasons@>;
|
||||||
@<Register this module's stream writers@>;
|
@<Register this module's stream writers@>;
|
||||||
@<Register this module's debugging log aspects@>;
|
@<Register this module's debugging log aspects@>;
|
||||||
@<Register this module's debugging log writers@>;
|
@<Register this module's debugging log writers@>;
|
||||||
@<Register this module's command line switches@>;
|
|
||||||
ParseTree::allow_annotation_to_category(L2_NCAT, problem_falls_under_ANNOT);
|
ParseTree::allow_annotation_to_category(L2_NCAT, problem_falls_under_ANNOT);
|
||||||
}
|
}
|
||||||
|
void ProblemsModule::end(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@<Register this module's memory allocation reasons@> =
|
||||||
|
;
|
||||||
|
|
||||||
@<Register this module's stream writers@> =
|
@<Register this module's stream writers@> =
|
||||||
;
|
;
|
||||||
|
@ -36,11 +33,11 @@ void ProblemsModule::start(void) {
|
||||||
@<Register this module's debugging log writers@> =
|
@<Register this module's debugging log writers@> =
|
||||||
;
|
;
|
||||||
|
|
||||||
@<Register this module's command line switches@> =
|
@ This module uses |syntax|, and adds the following annotations to the
|
||||||
;
|
syntax tree.
|
||||||
|
|
||||||
@h The end.
|
@e problem_falls_under_ANNOT /* |parse_node|: what heading the sentence falls under */
|
||||||
|
|
||||||
=
|
=
|
||||||
void ProblemsModule::end(void) {
|
DECLARE_ANNOTATION_FUNCTIONS(problem_falls_under, parse_node)
|
||||||
}
|
MAKE_ANNOTATION_FUNCTIONS(problem_falls_under, parse_node)
|
||||||
|
|
|
@ -2,12 +2,13 @@
|
||||||
|
|
||||||
Setting up the use of this module.
|
Setting up the use of this module.
|
||||||
|
|
||||||
@h Introduction.
|
@ This section simoly sets up the module in ways expected by |foundation|, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
|
which use this module:
|
||||||
|
|
||||||
@d CODEGEN_MODULE TRUE
|
@d CODEGEN_MODULE TRUE
|
||||||
|
|
||||||
@h Setting up the memory manager.
|
@ To begin with, this module needs to allocate memory:
|
||||||
We need to itemise the structures we'll want to allocate:
|
|
||||||
|
|
||||||
@e I6T_intervention_MT
|
@e I6T_intervention_MT
|
||||||
@e codegen_pipeline_MT
|
@e codegen_pipeline_MT
|
||||||
|
@ -21,8 +22,6 @@ We need to itemise the structures we'll want to allocate:
|
||||||
@e generated_segment_MT
|
@e generated_segment_MT
|
||||||
@e link_instruction_MT
|
@e link_instruction_MT
|
||||||
|
|
||||||
@ With allocation functions:
|
|
||||||
|
|
||||||
=
|
=
|
||||||
ALLOCATE_INDIVIDUALLY(I6T_intervention)
|
ALLOCATE_INDIVIDUALLY(I6T_intervention)
|
||||||
ALLOCATE_INDIVIDUALLY(codegen_pipeline)
|
ALLOCATE_INDIVIDUALLY(codegen_pipeline)
|
||||||
|
@ -36,9 +35,7 @@ ALLOCATE_INDIVIDUALLY(code_generation)
|
||||||
ALLOCATE_INDIVIDUALLY(generated_segment)
|
ALLOCATE_INDIVIDUALLY(generated_segment)
|
||||||
ALLOCATE_INDIVIDUALLY(link_instruction)
|
ALLOCATE_INDIVIDUALLY(link_instruction)
|
||||||
|
|
||||||
@h The beginning.
|
@ Like all modules, this one must define a |start| and |end| function:
|
||||||
(The client doesn't need to call the start and end routines, because the
|
|
||||||
foundation module does that automatically.)
|
|
||||||
|
|
||||||
=
|
=
|
||||||
void CodegenModule::start(void) {
|
void CodegenModule::start(void) {
|
||||||
|
@ -46,7 +43,8 @@ void CodegenModule::start(void) {
|
||||||
@<Register this module's stream writers@>;
|
@<Register this module's stream writers@>;
|
||||||
@<Register this module's debugging log aspects@>;
|
@<Register this module's debugging log aspects@>;
|
||||||
@<Register this module's debugging log writers@>;
|
@<Register this module's debugging log writers@>;
|
||||||
@<Register this module's command line switches@>;
|
}
|
||||||
|
void CodegenModule::end(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@
|
@
|
||||||
|
@ -76,12 +74,3 @@ void CodegenModule::start(void) {
|
||||||
|
|
||||||
@<Register this module's debugging log writers@> =
|
@<Register this module's debugging log writers@> =
|
||||||
;
|
;
|
||||||
|
|
||||||
@<Register this module's command line switches@> =
|
|
||||||
;
|
|
||||||
|
|
||||||
@h The end.
|
|
||||||
|
|
||||||
=
|
|
||||||
void CodegenModule::end(void) {
|
|
||||||
}
|
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
|
|
||||||
Setting up the use of this module.
|
Setting up the use of this module.
|
||||||
|
|
||||||
@h Introduction.
|
@ This section simoly sets up the module in ways expected by |foundation|, and
|
||||||
|
contains no code of interest. The following constant exists only in tools
|
||||||
|
which use this module:
|
||||||
|
|
||||||
@d INTER_MODULE TRUE
|
@d INTER_MODULE TRUE
|
||||||
|
|
||||||
|
@ -43,9 +45,7 @@ ALLOCATE_IN_ARRAYS(inter_symbol, 1024)
|
||||||
ALLOCATE_IN_ARRAYS(inter_tree_node, 8192)
|
ALLOCATE_IN_ARRAYS(inter_tree_node, 8192)
|
||||||
ALLOCATE_IN_ARRAYS(inter_annotation, 8192)
|
ALLOCATE_IN_ARRAYS(inter_annotation, 8192)
|
||||||
|
|
||||||
@h The beginning.
|
@ Like all modules, this one must define a |start| and |end| function:
|
||||||
(The client doesn't need to call the start and end routines, because the
|
|
||||||
foundation module does that automatically.)
|
|
||||||
|
|
||||||
=
|
=
|
||||||
void InterModule::start(void) {
|
void InterModule::start(void) {
|
||||||
|
@ -53,11 +53,12 @@ void InterModule::start(void) {
|
||||||
@<Register this module's stream writers@>;
|
@<Register this module's stream writers@>;
|
||||||
@<Register this module's debugging log aspects@>;
|
@<Register this module's debugging log aspects@>;
|
||||||
@<Register this module's debugging log writers@>;
|
@<Register this module's debugging log writers@>;
|
||||||
@<Register this module's command line switches@>;
|
|
||||||
|
|
||||||
Inter::Defn::create_language();
|
Inter::Defn::create_language();
|
||||||
Inter::Types::create_all();
|
Inter::Types::create_all();
|
||||||
}
|
}
|
||||||
|
void InterModule::end(void) {
|
||||||
|
}
|
||||||
|
|
||||||
@
|
@
|
||||||
|
|
||||||
|
@ -96,12 +97,3 @@ void InterModule::start(void) {
|
||||||
Writers::register_logger('4', Inter::SymbolsTables::log);
|
Writers::register_logger('4', Inter::SymbolsTables::log);
|
||||||
Writers::register_logger('5', Inter::Bookmarks::log);
|
Writers::register_logger('5', Inter::Bookmarks::log);
|
||||||
Writers::register_logger('6', Inter::Packages::log);
|
Writers::register_logger('6', Inter::Packages::log);
|
||||||
|
|
||||||
@<Register this module's command line switches@> =
|
|
||||||
;
|
|
||||||
|
|
||||||
@h The end.
|
|
||||||
|
|
||||||
=
|
|
||||||
void InterModule::end(void) {
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue