mirror of
https://github.com/ganelson/inform.git
synced 2024-06-26 04:00:43 +03:00
The dawn of DialogueKit
This commit is contained in:
parent
c25d6f41e1
commit
0d6eba5bfd
|
@ -1,6 +1,6 @@
|
|||
# Inform 7
|
||||
|
||||
[Version](notes/versioning.md): 10.2.0-beta+6V51 'Krypton' (5 September 2022)
|
||||
[Version](notes/versioning.md): 10.2.0-beta+6V52 'Krypton' (6 September 2022)
|
||||
|
||||
## About Inform
|
||||
|
||||
|
@ -121,6 +121,7 @@ The following webs are the source for kits of Inter code shipped with Inform (at
|
|||
* EnglishLanguageKit - Support for English as the natural language used - [★ Web](https://ganelson.github.io/inform/EnglishLanguageKit/index.html)
|
||||
* CommandParserKit - Support for parsing turn-by-turn commands in interactive fiction - [★ Web](https://ganelson.github.io/inform/CommandParserKit/index.html)
|
||||
* BasicInformExtrasKit - Additional support needed only if the Standard Rules are not used - [★ Web](https://ganelson.github.io/inform/BasicInformExtrasKit/index.html)
|
||||
* DialogueKit - Additional support for dialogue (under construction) - [★ Web](https://ganelson.github.io/inform/DialogueKit/index.html)
|
||||
|
||||
### Extensions shipped with Inform
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Prerelease: beta
|
||||
Build Date: 5 September 2022
|
||||
Build Number: 6V51
|
||||
Build Date: 6 September 2022
|
||||
Build Number: 6V52
|
||||
|
|
|
@ -63,6 +63,7 @@ web: "EnglishLanguageKit" at "inform7/Internal/Inter/EnglishLanguageKit" in "doc
|
|||
web: "CommandParserKit" at "inform7/Internal/Inter/CommandParserKit" in "docs/CommandParserKit"
|
||||
web: "BasicInformKit" at "inform7/Internal/Inter/BasicInformKit" in "docs/BasicInformKit"
|
||||
web: "BasicInformExtrasKit" at "inform7/Internal/Inter/BasicInformExtrasKit" in "docs/BasicInformExtrasKit"
|
||||
web: "DialogueKit" at "inform7/Internal/Inter/DialogueKit" in "docs/DialogueKit"
|
||||
|
||||
breadcrumbs: "Home: //overview//"
|
||||
web: "inblorb" at "inblorb" in "docs/inblorb"
|
||||
|
|
|
@ -31,4 +31,10 @@
|
|||
<p>A kit of Inter code providing runtime support for interactive fiction
|
||||
projects with a command parser interface.</p>
|
||||
</div>
|
||||
<div class="w3-quarter">
|
||||
<a href="DialogueKit/index.html"><img src="docs-assets/ifkit.jpg" alt="DialogueKit" style="width:100%"></a>
|
||||
<h3><a href="DialogueKit/index.html">DialogueKit</a></h3>
|
||||
<p>A kit of Inter code eventually to provide runtime support for dialogue, an experimental
|
||||
new feature of Inform which is not yet implemented.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
68
docs/DialogueKit/S-drc.html
Normal file
68
docs/DialogueKit/S-drc.html
Normal file
|
@ -0,0 +1,68 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Director Template</title>
|
||||
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
|
||||
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body class="commentary-font">
|
||||
<nav role="navigation">
|
||||
<h1><a href="../index.html">
|
||||
<img src="../docs-assets/Inform.png" height=72">
|
||||
</a></h1>
|
||||
<ul><li><a href="../index.html">home</a></li>
|
||||
</ul><h2>Compiler</h2><ul>
|
||||
<li><a href="../structure.html">structure</a></li>
|
||||
<li><a href="../inbuildn.html">inbuild</a></li>
|
||||
<li><a href="../inform7n.html">inform7</a></li>
|
||||
<li><a href="../intern.html">inter</a></li>
|
||||
<li><a href="../services.html">services</a></li>
|
||||
<li><a href="../secrets.html">secrets</a></li>
|
||||
</ul><h2>Other Tools</h2><ul>
|
||||
<li><a href="../inblorbn.html">inblorb</a></li>
|
||||
<li><a href="../indocn.html">indoc</a></li>
|
||||
<li><a href="../inform6.html">inform6</a></li>
|
||||
<li><a href="../inpolicyn.html">inpolicy</a></li>
|
||||
<li><a href="../inrtpsn.html">inrtps</a></li>
|
||||
</ul><h2>Resources</h2><ul>
|
||||
<li><a href="../extensions.html">extensions</a></li>
|
||||
<li><a href="../kits.html">kits</a></li>
|
||||
</ul><h2>Repository</h2><ul>
|
||||
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
|
||||
</ul><h2>Related Projects</h2><ul>
|
||||
<li><a href="../../../inweb/index.html">inweb</a></li>
|
||||
<li><a href="../../../intest/index.html">intest</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Director Template' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><b>DialogueKit</b></li></ul></div>
|
||||
<p class="purpose">Run-time support for dialogue.</p>
|
||||
|
||||
<ul class="toc"><li><a href="S-drc.html#SP1">§1. Placeholder</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Placeholder. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorBegin</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
</pre>
|
||||
<!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
64
docs/DialogueKit/index.html
Normal file
64
docs/DialogueKit/index.html
Normal file
|
@ -0,0 +1,64 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>DialogueKit</title>
|
||||
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
|
||||
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body class="commentary-font">
|
||||
<nav role="navigation">
|
||||
<h1><a href="../index.html">
|
||||
<img src="../docs-assets/Inform.png" height=72">
|
||||
</a></h1>
|
||||
<ul><li><a href="../index.html">home</a></li>
|
||||
</ul><h2>Compiler</h2><ul>
|
||||
<li><a href="../structure.html">structure</a></li>
|
||||
<li><a href="../inbuildn.html">inbuild</a></li>
|
||||
<li><a href="../inform7n.html">inform7</a></li>
|
||||
<li><a href="../intern.html">inter</a></li>
|
||||
<li><a href="../services.html">services</a></li>
|
||||
<li><a href="../secrets.html">secrets</a></li>
|
||||
</ul><h2>Other Tools</h2><ul>
|
||||
<li><a href="../inblorbn.html">inblorb</a></li>
|
||||
<li><a href="../indocn.html">indoc</a></li>
|
||||
<li><a href="../inform6.html">inform6</a></li>
|
||||
<li><a href="../inpolicyn.html">inpolicy</a></li>
|
||||
<li><a href="../inrtpsn.html">inrtps</a></li>
|
||||
</ul><h2>Resources</h2><ul>
|
||||
<li><a href="../extensions.html">extensions</a></li>
|
||||
<li><a href="../kits.html">kits</a></li>
|
||||
</ul><h2>Repository</h2><ul>
|
||||
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
|
||||
</ul><h2>Related Projects</h2><ul>
|
||||
<li><a href="../../../inweb/index.html">inweb</a></li>
|
||||
<li><a href="../../../intest/index.html">intest</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><b>DialogueKit</b></li></ul>
|
||||
<p class="purpose">Inter-level support for dialogue in Inform projects. This is version 1.</p>
|
||||
<hr>
|
||||
<div class="contentspage">
|
||||
<ul class="chapterlist">
|
||||
<li>
|
||||
<p class="chapterentry"><a href="S-drc.html">
|
||||
<spon class="sectiontitle">Director Template</span></a> -
|
||||
<span class="sectionpurpose">Run-time support for dialogue.</span></p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr>
|
||||
<p class="purpose">Powered by <a href="https://github.com/ganelson/inweb">Inweb</a>.</p>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -87,6 +87,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">scene_name</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cue_at</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">under_heading</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">immediately_after</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">some_time_after</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">dialogue_beat</span></span>
|
||||
|
@ -99,6 +100,7 @@ function togglePopup(material_id) {
|
|||
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">dialogue_line</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">line_name</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">line_at</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">speaker_text</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">speech_text</span><span class="plain-syntax">;</span>
|
||||
|
@ -176,6 +178,17 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"which is not allowed. It can be anonymous, but otherwise can only have "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"one name (either as a beat or as a scene, and not both)."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">beat_name</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_name</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_name</span><span class="plain-syntax">, </span><span class="string-syntax">"beat-%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::feed_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_name</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><a href="8-cu.html#SP1" class="function-link"><span class="function-syntax">Propositions::Abstract::to_create_something</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_dialogue_beat</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Assert::true</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">as_instance</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::latest</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -326,6 +339,17 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">precursor_dialogue_lines</span><span class="plain-syntax">[</span><span class="identifier-syntax">L</span><span class="plain-syntax">] = </span><span class="identifier-syntax">dl</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">L</span><span class="plain-syntax">+1; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="constant-syntax">MAX_DIALOGUE_LINE_NESTING</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) </span><span class="identifier-syntax">precursor_dialogue_lines</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">line_name</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_name</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_name</span><span class="plain-syntax">, </span><span class="string-syntax">"line-%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::feed_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_name</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><a href="8-cu.html#SP1" class="function-link"><span class="function-syntax">Propositions::Abstract::to_create_something</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_dialogue_line</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Assert::true</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">as_instance</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::latest</span><span class="plain-syntax">();</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -78,7 +78,7 @@ their existence.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="8-tcp.html#SP4" class="function-link"><span class="function-syntax">CreationPredicates::is_a_const_up</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Terms::new_variable</span><span class="plain-syntax">(0));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="function-syntax">Propositions::Abstract::to_create_something</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Propositions::Abstract::to_create_something</span></span>:<br/>New Property Requests - <a href="3-npr.html#SP5_11">§5.11</a><br/>The Creator - <a href="4-tc.html#SP4_4_1_1">§4.4.1.1</a>, <a href="4-tc.html#SP4_4_2_1">§4.4.2.1</a>, <a href="4-tc.html#SP4_4_2_2">§4.4.2.2</a>, <a href="4-tc.html#SP4_4_2_3">§4.4.2.3</a>, <a href="4-tc.html#SP7_4_1">§7.4.1</a>, <a href="4-tc.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="function-syntax">Propositions::Abstract::to_create_something</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Propositions::Abstract::to_create_something</span></span>:<br/>New Property Requests - <a href="3-npr.html#SP5_11">§5.11</a><br/>The Creator - <a href="4-tc.html#SP4_4_1_1">§4.4.1.1</a>, <a href="4-tc.html#SP4_4_2_1">§4.4.2.1</a>, <a href="4-tc.html#SP4_4_2_2">§4.4.2.2</a>, <a href="4-tc.html#SP4_4_2_3">§4.4.2.3</a>, <a href="4-tc.html#SP7_4_1">§7.4.1</a>, <a href="4-tc.html#SP11">§11</a><br/>Dialogue - <a href="7-dlg.html#SP3">§3</a>, <a href="7-dlg.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Atoms::QUANTIFIER_new</span><span class="plain-syntax">(</span><span class="identifier-syntax">exists_quantifier</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Propositions::concatenate</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">,</span>
|
||||
|
|
|
@ -970,6 +970,8 @@ which compilation unit the node belongs.
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">constant_activity_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">activity</span></span><span class="comment-syntax">: for constant values</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">constant_binary_predicate_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">binary_predicate</span></span><span class="comment-syntax">: for constant values</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">constant_constant_phrase_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">constant_phrase</span></span><span class="comment-syntax">: for constant values</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">constant_dialogue_beat_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">dialogue_beat</span></span><span class="comment-syntax">: for constant values</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">constant_dialogue_line_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">dialogue_line</span></span><span class="comment-syntax">: for constant values</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">constant_enumeration_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">int</span></span><span class="comment-syntax">: which one from an enumerated kind</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">constant_equation_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">equation</span></span><span class="comment-syntax">: for constant values</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">constant_instance_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">instance</span></span><span class="comment-syntax">: for constant values</span>
|
||||
|
@ -1005,6 +1007,8 @@ which compilation unit the node belongs.
|
|||
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_activity</span><span class="plain-syntax">, </span><span class="identifier-syntax">activity</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_binary_predicate</span><span class="plain-syntax">, </span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_constant_phrase</span><span class="plain-syntax">, </span><span class="identifier-syntax">constant_phrase</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_dialogue_beat</span><span class="plain-syntax">, </span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_dialogue_line</span><span class="plain-syntax">, </span><span class="identifier-syntax">dialogue_line</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_equation</span><span class="plain-syntax">, </span><span class="identifier-syntax">equation</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_instance</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_local_variable</span><span class="plain-syntax">, </span><span class="identifier-syntax">local_variable</span><span class="plain-syntax">)</span>
|
||||
|
@ -1033,6 +1037,8 @@ which compilation unit the node belongs.
|
|||
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_activity</span><span class="plain-syntax">, </span><span class="identifier-syntax">activity</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_binary_predicate</span><span class="plain-syntax">, </span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_constant_phrase</span><span class="plain-syntax">, </span><span class="identifier-syntax">constant_phrase</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_dialogue_beat</span><span class="plain-syntax">, </span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_dialogue_line</span><span class="plain-syntax">, </span><span class="identifier-syntax">dialogue_line</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_equation</span><span class="plain-syntax">, </span><span class="identifier-syntax">equation</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_instance</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_local_variable</span><span class="plain-syntax">, </span><span class="identifier-syntax">local_variable</span><span class="plain-syntax">)</span>
|
||||
|
@ -1063,6 +1069,10 @@ which compilation unit the node belongs.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::declare_type</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">constant_constant_phrase_ANNOT</span><span class="plain-syntax">, </span><a href="1-inaa.html#SP22" class="function-link"><span class="function-syntax">CoreSyntax::write_constant_constant_phrase_ANNOT</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::declare_type</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">constant_dialogue_beat_ANNOT</span><span class="plain-syntax">, </span><a href="1-inaa.html#SP22" class="function-link"><span class="function-syntax">CoreSyntax::write_constant_dialogue_beat_ANNOT</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::declare_type</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">constant_dialogue_line_ANNOT</span><span class="plain-syntax">, </span><a href="1-inaa.html#SP22" class="function-link"><span class="function-syntax">CoreSyntax::write_constant_dialogue_line_ANNOT</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::declare_type</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">constant_equation_ANNOT</span><span class="plain-syntax">, </span><a href="1-inaa.html#SP22" class="function-link"><span class="function-syntax">CoreSyntax::write_constant_equation_ANNOT</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::declare_type</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">constant_instance_ANNOT</span><span class="plain-syntax">, </span><a href="1-inaa.html#SP22" class="function-link"><span class="function-syntax">CoreSyntax::write_constant_instance_ANNOT</span></a><span class="plain-syntax">);</span>
|
||||
|
@ -1141,6 +1151,14 @@ which compilation unit the node belongs.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"}"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CoreSyntax::write_constant_dialogue_beat_ANNOT</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_constant_dialogue_beat</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">db</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" {beat: %W}"</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">beat_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CoreSyntax::write_constant_dialogue_line_ANNOT</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dialogue_line</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dl</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_constant_dialogue_line</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dl</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" {line: %W}"</span><span class="plain-syntax">, </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">line_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CoreSyntax::write_constant_equation_ANNOT</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">equation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eqn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_constant_equation</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">eqn</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" {equation: %W}"</span><span class="plain-syntax">, </span><span class="identifier-syntax">eqn</span><span class="plain-syntax">-></span><span class="identifier-syntax">equation_text</span><span class="plain-syntax">);</span>
|
||||
|
@ -1305,6 +1323,8 @@ which compilation unit the node belongs.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSTANT_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">constant_activity_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSTANT_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">constant_binary_predicate_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSTANT_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">constant_constant_phrase_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSTANT_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">constant_dialogue_beat_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSTANT_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">constant_dialogue_line_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSTANT_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">constant_enumeration_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSTANT_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">constant_equation_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSTANT_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">constant_instance_ANNOT</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -179,6 +179,8 @@ feature in question is inactive, they will remain <span class="extract"><span cl
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K_dialogue_beat</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K_dialogue_line</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K_equation</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K_grammatical_gender</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K_natural_language</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -265,6 +267,8 @@ it is. There is no need for speed here.
|
|||
|
||||
<span class="reserved-syntax">kind</span><span class="plain-syntax"> **</span><span class="function-syntax">FamiliarKinds::known_kind</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">FamiliarKinds::known_kind</span></span>:<br/>Kind Constructors - <a href="4-kc2.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IDENTIFIERS_CORRESPOND</span><span class="plain-syntax">(</span><span class="string-syntax">"ARITHMETIC_VALUE_TY"</span><span class="plain-syntax">, &</span><span class="identifier-syntax">K_arithmetic_value</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IDENTIFIERS_CORRESPOND</span><span class="plain-syntax">(</span><span class="string-syntax">"DIALOGUE_BEAT_TY"</span><span class="plain-syntax">, &</span><span class="identifier-syntax">K_dialogue_beat</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IDENTIFIERS_CORRESPOND</span><span class="plain-syntax">(</span><span class="string-syntax">"DIALOGUE_LINE_TY"</span><span class="plain-syntax">, &</span><span class="identifier-syntax">K_dialogue_line</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IDENTIFIERS_CORRESPOND</span><span class="plain-syntax">(</span><span class="string-syntax">"ENUMERATED_VALUE_TY"</span><span class="plain-syntax">, &</span><span class="identifier-syntax">K_enumerated_value</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IDENTIFIERS_CORRESPOND</span><span class="plain-syntax">(</span><span class="string-syntax">"EQUATION_TY"</span><span class="plain-syntax">, &</span><span class="identifier-syntax">K_equation</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IDENTIFIERS_CORRESPOND</span><span class="plain-syntax">(</span><span class="string-syntax">"TEXT_TY"</span><span class="plain-syntax">, &</span><span class="identifier-syntax">K_text</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -2063,6 +2063,8 @@ and <a href="../pipeline-module/4-tsk.html" class="internal">The Standard Kits (
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">K_RULEBOOK_OUTCOME_XPACKAGE</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">K_RESPONSE_XPACKAGE</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">K_SCENE_XPACKAGE</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">K_DIALOGUE_BEAT_XPACKAGE</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">K_DIALOGUE_LINE_XPACKAGE</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">CAPSHORTNAME_HL</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">DECIMAL_TOKEN_INNER_HL</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">TIME_TOKEN_INNER_HL</span>
|
||||
|
@ -2072,6 +2074,8 @@ and <a href="../pipeline-module/4-tsk.html" class="internal">The Standard Kits (
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">PRINT_SOUND_NAME_HL</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">PRINT_EXTERNAL_FILE_NAME_HL</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">PRINT_SCENE_HL</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">PRINT_DIALOGUE_BEAT_HL</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">PRINT_DIALOGUE_LINE_HL</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8_1_52" class="paragraph-anchor"></a><b>§8.1.52. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">The rest</span><span class="named-paragraph-number">8.1.52</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
@ -2112,6 +2116,14 @@ and <a href="../pipeline-module/4-tsk.html" class="internal">The Standard Kits (
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::this_exotic_package</span><span class="plain-syntax">(</span><span class="constant-syntax">K_SCENE_XPACKAGE</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">H_F_T</span><span class="plain-syntax">(</span><span class="constant-syntax">PRINT_SCENE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"print_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PrintSceneName"</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">H_END</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::this_exotic_package</span><span class="plain-syntax">(</span><span class="constant-syntax">K_DIALOGUE_BEAT_XPACKAGE</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">H_F_T</span><span class="plain-syntax">(</span><span class="constant-syntax">PRINT_DIALOGUE_BEAT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"print_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PrintDialogueBeatName"</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">H_END</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::this_exotic_package</span><span class="plain-syntax">(</span><span class="constant-syntax">K_DIALOGUE_LINE_XPACKAGE</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">H_F_T</span><span class="plain-syntax">(</span><span class="constant-syntax">PRINT_DIALOGUE_LINE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"print_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PrintDialogueLineName"</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">H_END</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">§8.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP8_2_1" class="paragraph-anchor"></a><b>§8.2.1. Architectural symbols. </b>These are built-in constants (and one built-in variable, <span class="extract"><span class="extract-syntax">self</span></span>) which come
|
||||
|
@ -2228,6 +2240,8 @@ exotic, but which are locations not easily falling into patterns. Here they are:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">K_RULEBOOK_OUTCOME_XPACKAGE:</span><span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_rulebook_outcome</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">K_RESPONSE_XPACKAGE:</span><span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_response</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">K_SCENE_XPACKAGE:</span><span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_scene</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">K_DIALOGUE_BEAT_XPACKAGE:</span><span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_dialogue_beat</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">K_DIALOGUE_LINE_XPACKAGE:</span><span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP4" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_dialogue_line</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"unknown exotic package"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -315,6 +315,16 @@ of the kind which the constructor makes:
|
|||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="identifier-syntax">construct</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">pr_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="identifier-syntax">construct</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">pr_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_dialogue_beat</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="identifier-syntax">construct</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">pr_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PRINT_DIALOGUE_BEAT_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="identifier-syntax">construct</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">pr_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="identifier-syntax">construct</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">pr_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_dialogue_line</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="identifier-syntax">construct</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">pr_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PRINT_DIALOGUE_LINE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="identifier-syntax">construct</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">pr_iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="identifier-syntax">construct</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">pr_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">external</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -632,8 +632,11 @@ on <a href="../WorldModelKit/index.html" class="internal">WorldModelKit</a>, thr
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">project</span><span class="plain-syntax">-></span><span class="element-syntax">language_of_play</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax">) </span><a href="5-ls.html#SP6" class="function-link"><span class="function-syntax">Languages::add_kit_dependencies_to_project</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="identifier-syntax">project</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no language of play"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">no_word_from_JSON</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">forcible_basic_mode</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">no_word_from_JSON</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">forcible_basic_mode</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="5-ps2.html#SP18" class="function-link"><span class="function-syntax">Projects::add_kit_dependency</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">project</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"CommandParserKit"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">project</span><span class="plain-syntax">-></span><span class="element-syntax">syntax_tree</span><span class="plain-syntax">-></span><span class="identifier-syntax">contains_dialogue</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="5-ps2.html#SP18" class="function-link"><span class="function-syntax">Projects::add_kit_dependency</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">project</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DialogueKit"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-ps2.html#SP20">§20</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP20_2" class="paragraph-anchor"></a><b>§20.2. </b>We perform this first with <span class="extract"><span class="extract-syntax">parity</span></span> being <span class="extract"><span class="extract-syntax">TRUE</span></span>, then <span class="extract"><span class="extract-syntax">FALSE</span></span>.
|
||||
|
|
|
@ -89,6 +89,7 @@ it includes, will form a single <a href="2-st.html#SP2" class="internal">parse_n
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bud_parent_stack</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_BUD_STACK_SIZE</span><span class="plain-syntax">];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">last_sentence</span><span class="plain-syntax">; </span><span class="comment-syntax"> cached position in tree</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">allow_last_sentence_cacheing</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">contains_dialogue</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">trace_sentences</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">HEADING_TREE_SYNTAX_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">headings</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
|
@ -101,6 +102,7 @@ it includes, will form a single <a href="2-st.html#SP2" class="internal">parse_n
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">T</span><span class="plain-syntax">-></span><span class="element-syntax">last_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">T</span><span class="plain-syntax">-></span><span class="element-syntax">allow_last_sentence_cacheing</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">T</span><span class="plain-syntax">-></span><span class="element-syntax">trace_sentences</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">T</span><span class="plain-syntax">-></span><span class="element-syntax">contains_dialogue</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="2-st.html#SP3" class="function-link"><span class="function-syntax">SyntaxTree::push_bud</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">-></span><span class="element-syntax">root_node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">NEW_HEADING_TREE_SYNTAX_CALLBACK</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">T</span><span class="plain-syntax">-></span><span class="element-syntax">headings</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_HEADING_TREE_SYNTAX_CALLBACK</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">);</span>
|
||||
|
@ -108,7 +110,7 @@ it includes, will form a single <a href="2-st.html#SP2" class="internal">parse_n
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">T</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure parse_node_tree is accessed in 2/tv and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure parse_node_tree is accessed in 2/tv, 3/snt and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. Buds and grafts. </b>"Buds" are positions in the tree to which new sentence subtrees can be grafted:
|
||||
</p>
|
||||
|
||||
|
|
|
@ -942,6 +942,7 @@ order to catch improbable unmatched-bracket errors with tidy error messages.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">T</span><span class="plain-syntax">-></span><span class="element-syntax">contains_dialogue</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Lexer::word</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">OPENBRACKET_V</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Lexer::word</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::last_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">CLOSEBRACKET_V</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-snt.html#SP6_9_9_1" class="named-paragraph-link"><span class="named-paragraph">This is a dialogue cue</span><span class="named-paragraph-number">6.9.9.1</span></a></span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -95,6 +95,10 @@ pointers:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CONV_FROM</span><span class="plain-syntax">(</span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax">, </span><span class="identifier-syntax">Kinds::base_construction</span><span class="plain-syntax">(</span><span class="identifier-syntax">CON_relation</span><span class="plain-syntax">)) }</span>
|
||||
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::from_constant_phrase</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_phrase</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CONV_FROM</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_phrase</span><span class="plain-syntax">, </span><span class="identifier-syntax">Kinds::base_construction</span><span class="plain-syntax">(</span><span class="identifier-syntax">CON_phrase</span><span class="plain-syntax">)) }</span>
|
||||
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::from_dialogue_beat</span><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CONV_FROM</span><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_dialogue_beat</span><span class="plain-syntax">) }</span>
|
||||
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::from_dialogue_line</span><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_line</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CONV_FROM</span><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_line</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_dialogue_line</span><span class="plain-syntax">) }</span>
|
||||
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::from_equation</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Rvalues::from_equation</span></span>:<br/>Type Expressions and Values - <a href="4-teav.html#SP11_1">§11.1</a>, <a href="4-teav.html#SP11_3">§11.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">equation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CONV_FROM</span><span class="plain-syntax">(</span><span class="identifier-syntax">equation</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_equation</span><span class="plain-syntax">) }</span>
|
||||
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Rvalues::from_named_rulebook_outcome</span><span class="plain-syntax">(</span><span class="identifier-syntax">named_rulebook_outcome</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
|
|
|
@ -523,8 +523,11 @@ on //WorldModelKit//, through the if-this-then-that mechanism.
|
|||
inform_language *L = project->language_of_play;
|
||||
if (L) Languages::add_kit_dependencies_to_project(L, project);
|
||||
else internal_error("no language of play");
|
||||
if ((no_word_from_JSON) && (forcible_basic_mode == FALSE))
|
||||
if ((no_word_from_JSON) && (forcible_basic_mode == FALSE)) {
|
||||
Projects::add_kit_dependency(project, I"CommandParserKit", NULL, NULL, NULL);
|
||||
if (project->syntax_tree->contains_dialogue)
|
||||
Projects::add_kit_dependency(project, I"DialogueKit", NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
@ We perform this first with |parity| being |TRUE|, then |FALSE|.
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
Total memory consumption was 123126K = 120 MB
|
||||
Total memory consumption was 123143K = 120 MB
|
||||
|
||||
---- was used for 2048105 objects, in 364642 frames in 0 x 800K = 0K = 0 MB:
|
||||
---- was used for 2048354 objects, in 364792 frames in 0 x 800K = 0K = 0 MB:
|
||||
|
||||
33.1% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
|
||||
20.6% text_stream_array 4616 x 100 = 461600 objects, 25997312 bytes
|
||||
19.4% linked_list 43886 objects, 24576160 bytes
|
||||
20.6% text_stream_array 4617 x 100 = 461700 objects, 26002944 bytes
|
||||
19.5% linked_list 43933 objects, 24602480 bytes
|
||||
11.1% inter_symbol_array 132 x 1024 = 135168 objects, 14061696 bytes
|
||||
10.5% inter_error_stash_array 101 x 1024 = 103424 objects, 13241504 bytes
|
||||
8.2% parse_node 129721 objects, 10377680 bytes
|
||||
|
@ -13,7 +13,7 @@ Total memory consumption was 123126K = 120 MB
|
|||
2.6% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes
|
||||
2.5% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes
|
||||
2.0% kind_array 66 x 1000 = 66000 objects, 2642112 bytes
|
||||
1.7% scan_directory 521 objects, 2150688 bytes
|
||||
1.7% scan_directory 528 objects, 2179584 bytes
|
||||
1.6% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes
|
||||
1.5% inter_schema_token 13964 objects, 2010816 bytes
|
||||
1.4% package_request 21143 objects, 1860584 bytes
|
||||
|
@ -36,7 +36,7 @@ Total memory consumption was 123126K = 120 MB
|
|||
0.3% local_variable_array 47 x 100 = 4700 objects, 452704 bytes
|
||||
0.3% verb_usage 1128 objects, 388032 bytes
|
||||
0.2% rule 470 objects, 368480 bytes
|
||||
0.2% dictionary 7585 objects, 364080 bytes
|
||||
0.2% dictionary 7588 objects, 364224 bytes
|
||||
0.2% verb_form 386 objects, 348944 bytes
|
||||
0.2% noun 2385 objects, 286200 bytes
|
||||
0.2% compilation_subtask 3355 objects, 268400 bytes
|
||||
|
@ -44,7 +44,7 @@ Total memory consumption was 123126K = 120 MB
|
|||
0.2% inference_subject 666 objects, 261072 bytes
|
||||
0.1% vanilla_function 3684 objects, 235776 bytes
|
||||
0.1% binary_predicate 322 objects, 170016 bytes
|
||||
0.1% hierarchy_location 1124 objects, 161856 bytes
|
||||
0.1% hierarchy_location 1126 objects, 162144 bytes
|
||||
0.1% linguistic_stock_item 3321 objects, 159408 bytes
|
||||
0.1% rule_family_data 401 objects, 147568 bytes
|
||||
0.1% nonterminal 762 objects, 140208 bytes
|
||||
|
@ -59,7 +59,7 @@ Total memory consumption was 123126K = 120 MB
|
|||
---- lexical_cluster 2522 objects, 80704 bytes
|
||||
---- pcalc_term_array 2 x 1000 = 2000 objects, 80064 bytes
|
||||
---- kind_variable_declaration 1655 objects, 79440 bytes
|
||||
---- inter_tree 6 objects, 79344 bytes
|
||||
---- inter_tree 6 objects, 79440 bytes
|
||||
---- label_namespace 1472 objects, 70656 bytes
|
||||
---- rulebook 407 objects, 68376 bytes
|
||||
---- spatial_data 671 objects, 64416 bytes
|
||||
|
@ -99,25 +99,25 @@ Total memory consumption was 123126K = 120 MB
|
|||
---- action_name 90 objects, 20160 bytes
|
||||
---- nonlocal_variable 93 objects, 20088 bytes
|
||||
---- property 146 objects, 19856 bytes
|
||||
---- filename 490 objects, 19600 bytes
|
||||
---- timed_rules_rfd_data 401 objects, 19248 bytes
|
||||
---- filename 476 objects, 19040 bytes
|
||||
---- method 380 objects, 18240 bytes
|
||||
---- pcalc_prop_deferral 86 objects, 17888 bytes
|
||||
---- instance 167 objects, 17368 bytes
|
||||
---- parse_node_tree 19 objects, 16416 bytes
|
||||
---- JSON_value 194 objects, 17072 bytes
|
||||
---- parse_node_tree 19 objects, 16568 bytes
|
||||
---- build_vertex 136 objects, 16320 bytes
|
||||
---- understanding_reference_array 2 x 100 = 200 objects, 16064 bytes
|
||||
---- to_phrase_request 59 objects, 16048 bytes
|
||||
---- action_name_list_array 1 x 1000 objects, 16032 bytes
|
||||
---- match_avinue_array 1 x 1000 objects, 16032 bytes
|
||||
---- JSON_value 182 objects, 16016 bytes
|
||||
---- build_vertex 129 objects, 15480 bytes
|
||||
---- action_name_list_array 1 x 1000 objects, 16032 bytes
|
||||
---- adjective 137 objects, 15344 bytes
|
||||
---- pathname 375 objects, 15000 bytes
|
||||
---- pathname 380 objects, 15200 bytes
|
||||
---- booking_list 407 objects, 13024 bytes
|
||||
---- adjective_iname_holder 320 objects, 12800 bytes
|
||||
---- web_bibliographic_datum 174 objects, 11136 bytes
|
||||
---- uniqueness_count 453 objects, 10872 bytes
|
||||
---- inter_construct 30 objects, 10320 bytes
|
||||
---- web_bibliographic_datum 145 objects, 9280 bytes
|
||||
---- stopwatch_timer 115 objects, 9200 bytes
|
||||
---- equation_node 68 objects, 7616 bytes
|
||||
---- understanding_item_array 3 x 100 = 300 objects, 7296 bytes
|
||||
|
@ -125,22 +125,22 @@ Total memory consumption was 123126K = 120 MB
|
|||
---- determiner 22 objects, 7216 bytes
|
||||
---- verb 108 objects, 6912 bytes
|
||||
---- hierarchy_attachment_point 77 objects, 6776 bytes
|
||||
---- inbuild_copy 55 objects, 6600 bytes
|
||||
---- inbuild_work 102 objects, 6528 bytes
|
||||
---- text_literal_holder 163 objects, 6520 bytes
|
||||
---- inbuild_copy 54 objects, 6480 bytes
|
||||
---- inbuild_work 101 objects, 6464 bytes
|
||||
---- heading_tree 19 objects, 5320 bytes
|
||||
---- inbuild_edition 72 objects, 5184 bytes
|
||||
---- inbuild_edition 73 objects, 5256 bytes
|
||||
---- explicit_action_array 1 x 100 objects, 4832 bytes
|
||||
---- value_property_data 84 objects, 4704 bytes
|
||||
---- parsing_pp_data 96 objects, 4608 bytes
|
||||
---- section_md 45 objects, 4320 bytes
|
||||
---- build_script 129 objects, 4128 bytes
|
||||
---- compatibility_specification 83 objects, 3984 bytes
|
||||
---- activity 35 objects, 3920 bytes
|
||||
---- section_md 46 objects, 4416 bytes
|
||||
---- build_script 136 objects, 4352 bytes
|
||||
---- compatibility_specification 84 objects, 4032 bytes
|
||||
---- command_line_switch 49 objects, 3920 bytes
|
||||
---- parse_node_annotation_type 117 objects, 3744 bytes
|
||||
---- submodule_request 84 objects, 3360 bytes
|
||||
---- activity 35 objects, 3920 bytes
|
||||
---- parse_node_annotation_type 119 objects, 3808 bytes
|
||||
---- property_setting_bp_data 84 objects, 3360 bytes
|
||||
---- submodule_request 84 objects, 3360 bytes
|
||||
---- method_set 104 objects, 3328 bytes
|
||||
---- kind_constructor_comparison_schema_array 1 x 100 objects, 3232 bytes
|
||||
---- semver_range 31 objects, 3224 bytes
|
||||
|
@ -157,7 +157,7 @@ Total memory consumption was 123126K = 120 MB
|
|||
---- JSON_type 31 objects, 2232 bytes
|
||||
---- scene 1 object, 2096 bytes
|
||||
---- JSON_single_requirement 43 objects, 2064 bytes
|
||||
---- build_step 24 objects, 1728 bytes
|
||||
---- build_step 28 objects, 2016 bytes
|
||||
---- pronoun_usage 42 objects, 1680 bytes
|
||||
---- table_contribution_array 1 x 100 objects, 1632 bytes
|
||||
---- inform_pipeline 24 objects, 1536 bytes
|
||||
|
@ -175,30 +175,30 @@ Total memory consumption was 123126K = 120 MB
|
|||
---- runtime_kind_structure 13 objects, 1040 bytes
|
||||
---- quantifier 16 objects, 1024 bytes
|
||||
---- submodule_identity 31 objects, 992 bytes
|
||||
---- named_rulebook_outcome 15 objects, 960 bytes
|
||||
---- pipeline_stage 20 objects, 960 bytes
|
||||
---- named_rulebook_outcome 15 objects, 960 bytes
|
||||
---- control_structure_phrase 12 objects, 864 bytes
|
||||
---- web_md 6 objects, 864 bytes
|
||||
---- cached_understanding 21 objects, 840 bytes
|
||||
---- JSON_pair_requirement 26 objects, 832 bytes
|
||||
---- phrase_option_array 1 x 100 objects, 824 bytes
|
||||
---- inbuild_search_result 20 objects, 800 bytes
|
||||
---- web_md 5 objects, 720 bytes
|
||||
---- internal_test 15 objects, 720 bytes
|
||||
---- relation_guard 5 objects, 640 bytes
|
||||
---- inform_kit 6 objects, 624 bytes
|
||||
---- implication 13 objects, 624 bytes
|
||||
---- code_generation 1 object, 576 bytes
|
||||
---- generated_segment 14 objects, 560 bytes
|
||||
---- inter_warehouse_room 10 objects, 560 bytes
|
||||
---- rulebook_outcome 17 objects, 544 bytes
|
||||
---- chapter_md 6 objects, 528 bytes
|
||||
---- small_word_set 11 objects, 528 bytes
|
||||
---- inform_kit 5 objects, 520 bytes
|
||||
---- inform_language 6 objects, 480 bytes
|
||||
---- equation 4 objects, 480 bytes
|
||||
---- inform_language 6 objects, 480 bytes
|
||||
---- module 6 objects, 480 bytes
|
||||
---- i6_memory_setting 14 objects, 448 bytes
|
||||
---- inference_family 11 objects, 440 bytes
|
||||
---- chapter_md 5 objects, 440 bytes
|
||||
---- bp_family 13 objects, 416 bytes
|
||||
---- module 5 objects, 400 bytes
|
||||
---- inter_annotation_form 10 objects, 400 bytes
|
||||
---- article_usage 8 objects, 384 bytes
|
||||
---- source_file 5 objects, 360 bytes
|
||||
|
@ -208,13 +208,13 @@ Total memory consumption was 123126K = 120 MB
|
|||
---- door_dir_notice 5 objects, 320 bytes
|
||||
---- pronoun 8 objects, 320 bytes
|
||||
---- grammatical_category 8 objects, 320 bytes
|
||||
---- tree_inventory 1 object, 312 bytes
|
||||
---- inter_pipeline 1 object, 312 bytes
|
||||
---- tree_inventory 1 object, 312 bytes
|
||||
---- up_family 9 objects, 288 bytes
|
||||
---- compilation_unit 5 objects, 280 bytes
|
||||
---- contents_entry 7 objects, 280 bytes
|
||||
---- explicit_bp_data 5 objects, 280 bytes
|
||||
---- door_to_notice 5 objects, 280 bytes
|
||||
---- contents_entry 7 objects, 280 bytes
|
||||
---- verb_usage_tier 5 objects, 240 bytes
|
||||
---- inform_project 1 object, 224 bytes
|
||||
---- adjective_meaning_family 7 objects, 224 bytes
|
||||
|
@ -222,19 +222,19 @@ Total memory consumption was 123126K = 120 MB
|
|||
---- release_instructions 1 object, 208 bytes
|
||||
---- code_generator 5 objects, 200 bytes
|
||||
---- build_skill 5 objects, 200 bytes
|
||||
---- plural_dictionary_entry 4 objects, 192 bytes
|
||||
---- kit_dependency 4 objects, 192 bytes
|
||||
---- plural_dictionary_entry 4 objects, 192 bytes
|
||||
---- inference_subject_family 5 objects, 160 bytes
|
||||
---- element_activation 5 objects, 160 bytes
|
||||
---- imperative_defn_family 4 objects, 160 bytes
|
||||
---- inter_architecture 4 objects, 160 bytes
|
||||
---- attachment_instruction 4 objects, 160 bytes
|
||||
---- element_activation 4 objects, 128 bytes
|
||||
---- inbuild_nest 3 objects, 120 bytes
|
||||
---- local_block_value 2 objects, 112 bytes
|
||||
---- inform_kit_ittt 2 objects, 96 bytes
|
||||
---- compile_task_data 1 object, 80 bytes
|
||||
---- group_together_function 2 objects, 80 bytes
|
||||
---- article 2 objects, 80 bytes
|
||||
---- compile_task_data 1 object, 80 bytes
|
||||
---- build_methodology 1 object, 56 bytes
|
||||
---- figures_data 1 object, 56 bytes
|
||||
---- inter_warehouse 1 object, 56 bytes
|
||||
|
@ -247,8 +247,8 @@ Total memory consumption was 123126K = 120 MB
|
|||
|
||||
100.0% was used for memory not allocated for objects:
|
||||
|
||||
57.5% text stream storage 72579248 bytes in 479038 claims
|
||||
4.1% dictionary storage 5294080 bytes in 7585 claims
|
||||
57.5% text stream storage 72595224 bytes in 479193 claims
|
||||
4.1% dictionary storage 5295616 bytes in 7588 claims
|
||||
---- sorting 1528 bytes in 159 claims
|
||||
5.7% source text 7200000 bytes in 3 claims
|
||||
8.5% source text details 10800000 bytes in 2 claims
|
||||
|
@ -265,5 +265,5 @@ Total memory consumption was 123126K = 120 MB
|
|||
---- code generation workspace for objects 3480 bytes in 19 claims
|
||||
0.2% emitter array storage 280288 bytes in 1999 claims
|
||||
|
||||
-147.-4% was overhead - -185900280 bytes = -181543K = -177 MB
|
||||
-147.-4% was overhead - -185967744 bytes = -181609K = -177 MB
|
||||
|
||||
|
|
|
@ -1,33 +1,33 @@
|
|||
100.0% in inform7 run
|
||||
71.2% in compilation to Inter
|
||||
50.0% in //Sequence::undertake_queued_tasks//
|
||||
4.9% in //MajorNodes::pre_pass//
|
||||
3.5% in //MajorNodes::pass_1//
|
||||
1.9% in //RTPhrasebook::compile_entries//
|
||||
1.7% in //ImperativeDefinitions::assess_all//
|
||||
1.3% in //RTKindConstructors::compile//
|
||||
1.1% in //Sequence::lint_inter//
|
||||
0.5% in //MajorNodes::pass_2//
|
||||
0.5% in //Sequence::undertake_queued_tasks//
|
||||
0.5% in //World::stage_V//
|
||||
0.3% in //ImperativeDefinitions::compile_first_block//
|
||||
0.3% in //Sequence::undertake_queued_tasks//
|
||||
0.1% in //CompletionModule::compile//
|
||||
0.1% in //InferenceSubjects::emit_all//
|
||||
0.1% in //RTKindConstructors::compile_permissions//
|
||||
0.1% in //Task::make_built_in_kind_constructors//
|
||||
0.1% in //World::stages_II_and_III//
|
||||
2.7% not specifically accounted for
|
||||
25.7% in running Inter pipeline
|
||||
10.0% in step 14/15: generate inform6 -> auto.inf
|
||||
5.7% in step 5/15: load-binary-kits
|
||||
5.3% in step 6/15: make-synoptic-module
|
||||
1.3% in step 9/15: make-identifiers-unique
|
||||
0.3% in step 12/15: eliminate-redundant-operations
|
||||
0.3% in step 4/15: compile-splats
|
||||
0.3% in step 7/15: shorten-wiring
|
||||
0.3% in step 8/15: detect-indirect-calls
|
||||
0.1% in step 11/15: eliminate-redundant-labels
|
||||
70.6% in compilation to Inter
|
||||
49.4% in //Sequence::undertake_queued_tasks//
|
||||
4.8% in //MajorNodes::pre_pass//
|
||||
3.4% in //MajorNodes::pass_1//
|
||||
2.2% in //RTPhrasebook::compile_entries//
|
||||
1.8% in //ImperativeDefinitions::assess_all//
|
||||
1.4% in //RTKindConstructors::compile//
|
||||
1.0% in //Sequence::lint_inter//
|
||||
0.6% in //MajorNodes::pass_2//
|
||||
0.6% in //Sequence::undertake_queued_tasks//
|
||||
0.6% in //World::stage_V//
|
||||
0.4% in //ImperativeDefinitions::compile_first_block//
|
||||
0.4% in //Sequence::undertake_queued_tasks//
|
||||
0.2% in //CompletionModule::compile//
|
||||
0.2% in //InferenceSubjects::emit_all//
|
||||
0.2% in //RTKindConstructors::compile_permissions//
|
||||
0.2% in //Task::make_built_in_kind_constructors//
|
||||
0.2% in //World::stages_II_and_III//
|
||||
2.6% not specifically accounted for
|
||||
26.0% in running Inter pipeline
|
||||
10.1% in step 14/15: generate inform6 -> auto.inf
|
||||
5.9% in step 5/15: load-binary-kits
|
||||
5.4% in step 6/15: make-synoptic-module
|
||||
1.4% in step 9/15: make-identifiers-unique
|
||||
0.4% in step 12/15: eliminate-redundant-operations
|
||||
0.4% in step 4/15: compile-splats
|
||||
0.4% in step 7/15: shorten-wiring
|
||||
0.2% in step 11/15: eliminate-redundant-labels
|
||||
0.2% in step 8/15: detect-indirect-calls
|
||||
1.4% not specifically accounted for
|
||||
2.5% in supervisor
|
||||
0.4% not specifically accounted for
|
||||
2.6% in supervisor
|
||||
0.7% not specifically accounted for
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "BasicInformExtrasKit",
|
||||
"version": "10.2.0-beta+6V51"
|
||||
"version": "10.2.0-beta+6V52"
|
||||
},
|
||||
"kit-details": {
|
||||
"has-priority": 1
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "BasicInformKit",
|
||||
"version": "10.2.0-beta+6V51"
|
||||
"version": "10.2.0-beta+6V52"
|
||||
},
|
||||
"needs": [ {
|
||||
"unless": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "CommandParserKit",
|
||||
"version": "10.2.0-beta+6V51"
|
||||
"version": "10.2.0-beta+6V52"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
9
inform7/Internal/Inter/DialogueKit/Contents.w
Normal file
9
inform7/Internal/Inter/DialogueKit/Contents.w
Normal file
|
@ -0,0 +1,9 @@
|
|||
Title: DialogueKit
|
||||
Author: Graham Nelson
|
||||
Purpose: Inter-level support for dialogue in Inform projects.
|
||||
Language: Inform 6
|
||||
Licence: Artistic License 2.0
|
||||
Web Syntax Version: 2
|
||||
|
||||
Sections
|
||||
Director
|
10
inform7/Internal/Inter/DialogueKit/Sections/Director.i6t
Normal file
10
inform7/Internal/Inter/DialogueKit/Sections/Director.i6t
Normal file
|
@ -0,0 +1,10 @@
|
|||
Director Template.
|
||||
|
||||
Run-time support for dialogue.
|
||||
|
||||
@h Placeholder.
|
||||
|
||||
=
|
||||
[ DirectorBegin;
|
||||
rfalse;
|
||||
];
|
BIN
inform7/Internal/Inter/DialogueKit/arch-16.interb
Normal file
BIN
inform7/Internal/Inter/DialogueKit/arch-16.interb
Normal file
Binary file not shown.
BIN
inform7/Internal/Inter/DialogueKit/arch-16d.interb
Normal file
BIN
inform7/Internal/Inter/DialogueKit/arch-16d.interb
Normal file
Binary file not shown.
BIN
inform7/Internal/Inter/DialogueKit/arch-32.interb
Normal file
BIN
inform7/Internal/Inter/DialogueKit/arch-32.interb
Normal file
Binary file not shown.
BIN
inform7/Internal/Inter/DialogueKit/arch-32d.interb
Normal file
BIN
inform7/Internal/Inter/DialogueKit/arch-32d.interb
Normal file
Binary file not shown.
33
inform7/Internal/Inter/DialogueKit/kinds/Dialogue.neptune
Normal file
33
inform7/Internal/Inter/DialogueKit/kinds/Dialogue.neptune
Normal file
|
@ -0,0 +1,33 @@
|
|||
builtin base DIALOGUE_BEAT_TY {
|
||||
conforms-to: ENUMERATED_VALUE_TY
|
||||
singular: dialogue beat
|
||||
plural: dialogue beats
|
||||
|
||||
default-value: 0
|
||||
loop-domain-schema: for (*1=1: *1<=NUMBER_DIALOGUE_BEATS_CREATED: *1++)
|
||||
constant-compilation-method: quantitative
|
||||
|
||||
printing-routine: PrintDialogueBeatName
|
||||
|
||||
! documentation-reference: kind_verb
|
||||
! index-priority: 6
|
||||
! index-default-value: verb be
|
||||
specification-text: A beat of dialogue occurring in a section of dialogue.
|
||||
}
|
||||
|
||||
builtin base DIALOGUE_LINE_TY {
|
||||
conforms-to: ENUMERATED_VALUE_TY
|
||||
singular: dialogue line
|
||||
plural: dialogue lines
|
||||
|
||||
default-value: 0
|
||||
loop-domain-schema: for (*1=1: *1<=NUMBER_DIALOGUE_LINES_CREATED: *1++)
|
||||
constant-compilation-method: quantitative
|
||||
|
||||
printing-routine: PrintDialogueLineName
|
||||
|
||||
! documentation-reference: kind_verb
|
||||
! index-priority: 6
|
||||
! index-default-value: verb be
|
||||
specification-text: A line of dialogue occurring in a section of dialogue.
|
||||
}
|
13
inform7/Internal/Inter/DialogueKit/kit_metadata.json
Normal file
13
inform7/Internal/Inter/DialogueKit/kit_metadata.json
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"is": {
|
||||
"type": "kit",
|
||||
"title": "DialogueKit",
|
||||
"version": "10.2.0-beta+6V51"
|
||||
},
|
||||
"activates": [ "dialogue" ],
|
||||
"kit-details": {
|
||||
"has-priority": 3,
|
||||
"defines-Main": false,
|
||||
"provides-kinds": [ "Dialogue.neptune" ]
|
||||
}
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "EnglishLanguageKit",
|
||||
"version": "10.2.0-beta+6V51"
|
||||
"version": "10.2.0-beta+6V52"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "WorldModelKit",
|
||||
"version": "10.2.0-beta+6V51"
|
||||
"version": "10.2.0-beta+6V52"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -7,8 +7,4 @@ Problem__ PM_EmptyDialogueClause
|
|||
>--> The text '.' (source text, line 5) appears to be a bracketed clause to
|
||||
do with dialogue, but the punctuation looks wrong because it includes an
|
||||
empty part.
|
||||
Problem__ PM_EmptyDialogueClause
|
||||
>--> The text '()' (source text, line 7) appears to be a bracketed clause to
|
||||
do with dialogue, but the punctuation looks wrong because it includes an
|
||||
empty part.
|
||||
Inform 7 has finished.
|
||||
|
|
|
@ -10,7 +10,13 @@ Problem__ PM_MisbracketedDialogueClause
|
|||
should be just one outer pair of brackets, and inside they can only be used
|
||||
to clarify clauses, if necessary.
|
||||
Problem__ PM_MisbracketedDialogueClause
|
||||
>--> The text '(going (doolally)' (source text, line 9) appears to be a
|
||||
>--> The text 'slowly, quickly) (erroneously' (source text, line 7) appears
|
||||
to be a bracketed clause to do with dialogue, but the punctuation looks
|
||||
wrong because it uses brackets '(' and ')' in a way which doesn't match.
|
||||
There should be just one outer pair of brackets, and inside they can only
|
||||
be used to clarify clauses, if necessary.
|
||||
Problem__ PM_MisbracketedDialogueClause
|
||||
>--> The text 'going (doolally' (source text, line 9) appears to be a
|
||||
bracketed clause to do with dialogue, but the punctuation looks wrong
|
||||
because it uses brackets '(' and ')' in a way which doesn't match. There
|
||||
should be just one outer pair of brackets, and inside they can only be used
|
||||
|
|
|
@ -29,6 +29,7 @@ typedef struct dialogue_beat {
|
|||
struct wording scene_name;
|
||||
struct parse_node *cue_at;
|
||||
struct heading *under_heading;
|
||||
struct instance *as_instance;
|
||||
|
||||
struct dialogue_beat *immediately_after;
|
||||
struct linked_list *some_time_after; /* of |dialogue_beat| */
|
||||
|
@ -41,6 +42,7 @@ typedef struct dialogue_beat {
|
|||
|
||||
typedef struct dialogue_line {
|
||||
struct wording line_name;
|
||||
struct instance *as_instance;
|
||||
struct parse_node *line_at;
|
||||
struct wording speaker_text;
|
||||
struct wording speech_text;
|
||||
|
@ -117,6 +119,17 @@ dialogue_beat *Dialogue::create_cue(parse_node *PN) {
|
|||
"which is not allowed. It can be anonymous, but otherwise can only have "
|
||||
"one name (either as a beat or as a scene, and not both).");
|
||||
}
|
||||
|
||||
wording W = db->beat_name;
|
||||
if (Wordings::empty(W)) {
|
||||
TEMPORARY_TEXT(faux_name)
|
||||
WRITE_TO(faux_name, "beat-%d", db->allocation_id + 1);
|
||||
W = Feeds::feed_text(faux_name);
|
||||
DISCARD_TEXT(faux_name)
|
||||
}
|
||||
pcalc_prop *prop = Propositions::Abstract::to_create_something(K_dialogue_beat, W);
|
||||
Assert::true(prop, CERTAIN_CE);
|
||||
db->as_instance = Instances::latest();
|
||||
return db;
|
||||
}
|
||||
|
||||
|
@ -262,6 +275,17 @@ dialogue_line *Dialogue::create_line(parse_node *PN) {
|
|||
precursor_dialogue_lines[L] = dl;
|
||||
for (int i=L+1; i<MAX_DIALOGUE_LINE_NESTING; i++) precursor_dialogue_lines[i] = NULL;
|
||||
|
||||
wording W = dl->line_name;
|
||||
if (Wordings::empty(W)) {
|
||||
TEMPORARY_TEXT(faux_name)
|
||||
WRITE_TO(faux_name, "line-%d", dl->allocation_id + 1);
|
||||
W = Feeds::feed_text(faux_name);
|
||||
DISCARD_TEXT(faux_name)
|
||||
}
|
||||
pcalc_prop *prop = Propositions::Abstract::to_create_something(K_dialogue_line, W);
|
||||
Assert::true(prop, CERTAIN_CE);
|
||||
dl->as_instance = Instances::latest();
|
||||
|
||||
return dl;
|
||||
}
|
||||
|
||||
|
|
|
@ -850,6 +850,8 @@ void CoreSyntax::grant_code_permissions(void) {
|
|||
@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_dialogue_beat_ANNOT /* |dialogue_beat|: for constant values */
|
||||
@e constant_dialogue_line_ANNOT /* |dialogue_line|: for constant values */
|
||||
@e constant_enumeration_ANNOT /* |int|: which one from an enumerated kind */
|
||||
@e constant_equation_ANNOT /* |equation|: for constant values */
|
||||
@e constant_instance_ANNOT /* |instance|: for constant values */
|
||||
|
@ -885,6 +887,8 @@ void CoreSyntax::grant_code_permissions(void) {
|
|||
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_dialogue_beat, dialogue_beat)
|
||||
DECLARE_ANNOTATION_FUNCTIONS(constant_dialogue_line, dialogue_line)
|
||||
DECLARE_ANNOTATION_FUNCTIONS(constant_equation, equation)
|
||||
DECLARE_ANNOTATION_FUNCTIONS(constant_instance, instance)
|
||||
DECLARE_ANNOTATION_FUNCTIONS(constant_local_variable, local_variable)
|
||||
|
@ -912,6 +916,8 @@ DECLARE_ANNOTATION_FUNCTIONS(tense_marker, grammatical_usage)
|
|||
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_dialogue_beat, dialogue_beat)
|
||||
MAKE_ANNOTATION_FUNCTIONS(constant_dialogue_line, dialogue_line)
|
||||
MAKE_ANNOTATION_FUNCTIONS(constant_equation, equation)
|
||||
MAKE_ANNOTATION_FUNCTIONS(constant_instance, instance)
|
||||
MAKE_ANNOTATION_FUNCTIONS(constant_local_variable, local_variable)
|
||||
|
@ -941,6 +947,10 @@ void CoreSyntax::declare_spec_annotations(void) {
|
|||
constant_binary_predicate_ANNOT, CoreSyntax::write_constant_binary_predicate_ANNOT);
|
||||
Annotations::declare_type(
|
||||
constant_constant_phrase_ANNOT, CoreSyntax::write_constant_constant_phrase_ANNOT);
|
||||
Annotations::declare_type(
|
||||
constant_dialogue_beat_ANNOT, CoreSyntax::write_constant_dialogue_beat_ANNOT);
|
||||
Annotations::declare_type(
|
||||
constant_dialogue_line_ANNOT, CoreSyntax::write_constant_dialogue_line_ANNOT);
|
||||
Annotations::declare_type(
|
||||
constant_equation_ANNOT, CoreSyntax::write_constant_equation_ANNOT);
|
||||
Annotations::declare_type(
|
||||
|
@ -1020,6 +1030,14 @@ void CoreSyntax::write_constant_constant_phrase_ANNOT(text_stream *OUT, parse_no
|
|||
WRITE("}");
|
||||
}
|
||||
}
|
||||
void CoreSyntax::write_constant_dialogue_beat_ANNOT(text_stream *OUT, parse_node *p) {
|
||||
dialogue_beat *db = Node::get_constant_dialogue_beat(p);
|
||||
if (db) WRITE(" {beat: %W}", db->beat_name);
|
||||
}
|
||||
void CoreSyntax::write_constant_dialogue_line_ANNOT(text_stream *OUT, parse_node *p) {
|
||||
dialogue_line *dl = Node::get_constant_dialogue_line(p);
|
||||
if (dl) WRITE(" {line: %W}", dl->line_name);
|
||||
}
|
||||
void CoreSyntax::write_constant_equation_ANNOT(text_stream *OUT, parse_node *p) {
|
||||
equation *eqn = Node::get_constant_equation(p);
|
||||
if (eqn) WRITE(" {equation: %W}", eqn->equation_text);
|
||||
|
@ -1184,6 +1202,8 @@ void CoreSyntax::grant_spec_permissions(void) {
|
|||
Annotations::allow(CONSTANT_NT, constant_activity_ANNOT);
|
||||
Annotations::allow(CONSTANT_NT, constant_binary_predicate_ANNOT);
|
||||
Annotations::allow(CONSTANT_NT, constant_constant_phrase_ANNOT);
|
||||
Annotations::allow(CONSTANT_NT, constant_dialogue_beat_ANNOT);
|
||||
Annotations::allow(CONSTANT_NT, constant_dialogue_line_ANNOT);
|
||||
Annotations::allow(CONSTANT_NT, constant_enumeration_ANNOT);
|
||||
Annotations::allow(CONSTANT_NT, constant_equation_ANNOT);
|
||||
Annotations::allow(CONSTANT_NT, constant_instance_ANNOT);
|
||||
|
|
|
@ -1895,6 +1895,8 @@ void Hierarchy::establish(void) {
|
|||
@e K_RULEBOOK_OUTCOME_XPACKAGE
|
||||
@e K_RESPONSE_XPACKAGE
|
||||
@e K_SCENE_XPACKAGE
|
||||
@e K_DIALOGUE_BEAT_XPACKAGE
|
||||
@e K_DIALOGUE_LINE_XPACKAGE
|
||||
|
||||
@e CAPSHORTNAME_HL
|
||||
@e DECIMAL_TOKEN_INNER_HL
|
||||
|
@ -1906,6 +1908,8 @@ void Hierarchy::establish(void) {
|
|||
@e PRINT_SOUND_NAME_HL
|
||||
@e PRINT_EXTERNAL_FILE_NAME_HL
|
||||
@e PRINT_SCENE_HL
|
||||
@e PRINT_DIALOGUE_BEAT_HL
|
||||
@e PRINT_DIALOGUE_LINE_HL
|
||||
|
||||
@<The rest@> =
|
||||
H_BEGIN(LocationRequirements::this_exotic_package(K_OBJECT_XPACKAGE))
|
||||
|
@ -1944,6 +1948,14 @@ void Hierarchy::establish(void) {
|
|||
H_F_T(PRINT_SCENE_HL, I"print_fn", I"PrintSceneName")
|
||||
H_END
|
||||
|
||||
H_BEGIN(LocationRequirements::this_exotic_package(K_DIALOGUE_BEAT_XPACKAGE))
|
||||
H_F_T(PRINT_DIALOGUE_BEAT_HL, I"print_fn", I"PrintDialogueBeatName")
|
||||
H_END
|
||||
|
||||
H_BEGIN(LocationRequirements::this_exotic_package(K_DIALOGUE_LINE_XPACKAGE))
|
||||
H_F_T(PRINT_DIALOGUE_LINE_HL, I"print_fn", I"PrintDialogueLineName")
|
||||
H_END
|
||||
|
||||
@h Architectural symbols.
|
||||
These are built-in constants (and one built-in variable, |self|) which come
|
||||
from the platform we are compiling to. See //building: Large-Scale Structure//.
|
||||
|
@ -2045,6 +2057,8 @@ package_request *Hierarchy::exotic_package(int x) {
|
|||
case K_RULEBOOK_OUTCOME_XPACKAGE: return RTKindConstructors::kind_package(K_rulebook_outcome);
|
||||
case K_RESPONSE_XPACKAGE: return RTKindConstructors::kind_package(K_response);
|
||||
case K_SCENE_XPACKAGE: return RTKindConstructors::kind_package(K_scene);
|
||||
case K_DIALOGUE_BEAT_XPACKAGE: return RTKindConstructors::kind_package(K_dialogue_beat);
|
||||
case K_DIALOGUE_LINE_XPACKAGE: return RTKindConstructors::kind_package(K_dialogue_line);
|
||||
}
|
||||
internal_error("unknown exotic package");
|
||||
return NULL;
|
||||
|
|
|
@ -253,6 +253,16 @@ inter_name *RTKindConstructors::get_iname(kind *K) {
|
|||
Hierarchy::make_available(K->construct->compilation_data.pr_iname);
|
||||
return K->construct->compilation_data.pr_iname;
|
||||
}
|
||||
if (Kinds::eq(K, K_dialogue_beat)) {
|
||||
K->construct->compilation_data.pr_iname = Hierarchy::find(PRINT_DIALOGUE_BEAT_HL);
|
||||
Hierarchy::make_available(K->construct->compilation_data.pr_iname);
|
||||
return K->construct->compilation_data.pr_iname;
|
||||
}
|
||||
if (Kinds::eq(K, K_dialogue_line)) {
|
||||
K->construct->compilation_data.pr_iname = Hierarchy::find(PRINT_DIALOGUE_LINE_HL);
|
||||
Hierarchy::make_available(K->construct->compilation_data.pr_iname);
|
||||
return K->construct->compilation_data.pr_iname;
|
||||
}
|
||||
|
||||
package_request *R = NULL;
|
||||
int external = TRUE;
|
||||
|
|
|
@ -35,6 +35,10 @@ parse_node *Rvalues::from_binary_predicate(binary_predicate *val) {
|
|||
CONV_FROM(binary_predicate, Kinds::base_construction(CON_relation)) }
|
||||
parse_node *Rvalues::from_constant_phrase(constant_phrase *val) {
|
||||
CONV_FROM(constant_phrase, Kinds::base_construction(CON_phrase)) }
|
||||
parse_node *Rvalues::from_dialogue_beat(dialogue_beat *val) {
|
||||
CONV_FROM(dialogue_beat, K_dialogue_beat) }
|
||||
parse_node *Rvalues::from_dialogue_line(dialogue_line *val) {
|
||||
CONV_FROM(dialogue_line, K_dialogue_line) }
|
||||
parse_node *Rvalues::from_equation(equation *val) {
|
||||
CONV_FROM(equation, K_equation) }
|
||||
parse_node *Rvalues::from_named_rulebook_outcome(named_rulebook_outcome *val) {
|
||||
|
|
|
@ -153,6 +153,7 @@ INFORM6WEB = inform6
|
|||
{component type: web symbol: COMMANDPARSERKIT webname: CommandParserKit path: inform7/Internal/Inter/CommandParserKit set: kits}
|
||||
{component type: web symbol: BASICINFORMEXTRASKIT webname: BasicInformExtrasKit path: inform7/Internal/Inter/BasicInformExtrasKit set: kits}
|
||||
{component type: web symbol: ENGLISHLANGUAGEKIT webname: EnglishLanguageKit path: inform7/Internal/Inter/EnglishLanguageKit set: kits}
|
||||
{component type: web symbol: DIALOGUEKIT webname: DialogueKit path: inform7/Internal/Inter/DialogueKit set: kits}
|
||||
|
||||
{component type: web symbol: STANDARDRULES webname: standard_rules path: inform7/extensions/standard_rules set: extensions}
|
||||
{component type: web symbol: BASICINFORM webname: basic_inform path: inform7/extensions/basic_inform set: extensions}
|
||||
|
|
|
@ -131,6 +131,7 @@ The following webs are the source for kits of Inter code shipped with Inform (at
|
|||
{kit name: EnglishLanguageKit purpose: Support for English as the natural language used}
|
||||
{kit name: CommandParserKit purpose: Support for parsing turn-by-turn commands in interactive fiction}
|
||||
{kit name: BasicInformExtrasKit purpose: Additional support needed only if the Standard Rules are not used}
|
||||
{kit name: DialogueKit purpose: Additional support for dialogue (under construction)}
|
||||
|
||||
### Extensions shipped with Inform
|
||||
|
||||
|
|
|
@ -93,6 +93,8 @@ Inform. Some standard kinds follow. Some belong only to features; if the
|
|||
feature in question is inactive, they will remain |NULL| and do nothing.
|
||||
|
||||
= (early code)
|
||||
kind *K_dialogue_beat = NULL;
|
||||
kind *K_dialogue_line = NULL;
|
||||
kind *K_equation = NULL;
|
||||
kind *K_grammatical_gender = NULL;
|
||||
kind *K_natural_language = NULL;
|
||||
|
@ -177,6 +179,8 @@ kind_constructor **FamiliarKinds::known_con(text_stream *sn) {
|
|||
|
||||
kind **FamiliarKinds::known_kind(text_stream *sn) {
|
||||
IDENTIFIERS_CORRESPOND("ARITHMETIC_VALUE_TY", &K_arithmetic_value);
|
||||
IDENTIFIERS_CORRESPOND("DIALOGUE_BEAT_TY", &K_dialogue_beat);
|
||||
IDENTIFIERS_CORRESPOND("DIALOGUE_LINE_TY", &K_dialogue_line);
|
||||
IDENTIFIERS_CORRESPOND("ENUMERATED_VALUE_TY", &K_enumerated_value);
|
||||
IDENTIFIERS_CORRESPOND("EQUATION_TY", &K_equation);
|
||||
IDENTIFIERS_CORRESPOND("TEXT_TY", &K_text);
|
||||
|
|
|
@ -30,6 +30,7 @@ typedef struct parse_node_tree {
|
|||
struct parse_node *bud_parent_stack[MAX_BUD_STACK_SIZE];
|
||||
struct parse_node *last_sentence; /* cached position in tree */
|
||||
int allow_last_sentence_cacheing;
|
||||
int contains_dialogue;
|
||||
int trace_sentences;
|
||||
HEADING_TREE_SYNTAX_TYPE *headings;
|
||||
CLASS_DEFINITION
|
||||
|
@ -42,6 +43,7 @@ parse_node_tree *SyntaxTree::new(void) {
|
|||
T->last_sentence = NULL;
|
||||
T->allow_last_sentence_cacheing = FALSE;
|
||||
T->trace_sentences = FALSE;
|
||||
T->contains_dialogue = FALSE;
|
||||
SyntaxTree::push_bud(T, T->root_node);
|
||||
#ifdef NEW_HEADING_TREE_SYNTAX_CALLBACK
|
||||
T->headings = NEW_HEADING_TREE_SYNTAX_CALLBACK(T);
|
||||
|
|
|
@ -706,6 +706,7 @@ here. This hand-tooled parser is annoyingly long to write out, but only in
|
|||
order to catch improbable unmatched-bracket errors with tidy error messages.
|
||||
|
||||
@<Make a DIALOGUE node@> =
|
||||
T->contains_dialogue = TRUE;
|
||||
if ((Lexer::word(Wordings::first_wn(W)) == OPENBRACKET_V) &&
|
||||
(Lexer::word(Wordings::last_wn(W)) == CLOSEBRACKET_V))
|
||||
@<This is a dialogue cue@>;
|
||||
|
|
Loading…
Reference in a new issue