1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-06-01 07:48:35 +03:00

Added synoptic/multimedia submodule

This commit is contained in:
Graham Nelson 2021-05-01 23:16:45 +01:00
parent 741209e225
commit 98e87d9ba5
47 changed files with 689 additions and 286 deletions

View file

@ -201,7 +201,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-act.html#SP2">&#167;2</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-rls.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresscurrent">act</li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-act2.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-rls.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresscurrent">act</li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-mlt.html">mlt</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-act2.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -274,7 +274,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_action</
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-act2.html#SP3">&#167;3</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-act.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresscurrent">act2</li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-ins.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-act.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresscurrent">act2</li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-mlt.html">mlt</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-ins.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -623,7 +623,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_relation
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-chr.html#SP2_6">&#167;2.6</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-tbl.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresscurrent">chr</li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-scn.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-tbl.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresscurrent">chr</li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-mlt.html">mlt</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-scn.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -215,7 +215,7 @@ is its allocation ID plus 1. (In effect, this means extensions are numbered from
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-ext.html#SP2">&#167;2</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-su.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresscurrent">ext</li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-lt.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-su.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresscurrent">ext</li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-mlt.html">mlt</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-lt.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -92,7 +92,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_instance
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-act2.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresscurrent">ins</li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-prp.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-act2.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresscurrent">ins</li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-mlt.html">mlt</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-prp.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

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

View file

@ -0,0 +1,189 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Multimedia</title>
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
<meta name="viewport" content="width=device-width initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-gb">
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
<script>
function togglePopup(material_id) {
var popup = document.getElementById(material_id);
popup.classList.toggle("show");
}
</script>
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../compiler.html">compiler tools</a></li>
<li><a href="../other.html">other tools</a></li>
<li><a href="../extensions.html">extensions and kits</a></li>
<li><a href="../units.html">unit test tools</a></li>
</ul><h2>Compiler Webs</h2><ul>
<li><a href="../inbuild/index.html">inbuild</a></li>
<li><a href="../inform7/index.html">inform7</a></li>
<li><a href="../inter/index.html">inter</a></li>
</ul><h2>Inbuild Modules</h2><ul>
<li><a href="../supervisor-module/index.html">supervisor</a></li>
</ul><h2>Inform7 Modules</h2><ul>
<li><a href="../core-module/index.html">core</a></li>
<li><a href="../assertions-module/index.html">assertions</a></li>
<li><a href="../values-module/index.html">values</a></li>
<li><a href="../knowledge-module/index.html">knowledge</a></li>
<li><a href="../imperative-module/index.html">imperative</a></li>
<li><a href="../runtime-module/index.html">runtime</a></li>
<li><a href="../if-module/index.html">if</a></li>
<li><a href="../multimedia-module/index.html">multimedia</a></li>
<li><a href="../index-module/index.html">index</a></li>
</ul><h2>Inter Modules</h2><ul>
<li><a href="../bytecode-module/index.html">bytecode</a></li>
<li><a href="../building-module/index.html">building</a></li>
<li><a href="index.html"><span class="selectedlink">codegen</span></a></li>
</ul><h2>Services</h2><ul>
<li><a href="../arch-module/index.html">arch</a></li>
<li><a href="../calculus-module/index.html">calculus</a></li>
<li><a href="../html-module/index.html">html</a></li>
<li><a href="../inflections-module/index.html">inflections</a></li>
<li><a href="../kinds-module/index.html">kinds</a></li>
<li><a href="../linguistics-module/index.html">linguistics</a></li>
<li><a href="../problems-module/index.html">problems</a></li>
<li><a href="../syntax-module/index.html">syntax</a></li>
<li><a href="../words-module/index.html">words</a></li>
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Multimedia' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">codegen</a></li><li><a href="index.html#3">Chapter 3: Synoptic Resources</a></li><li><b>Multimedia</b></li></ul></div>
<p class="purpose">To construct suitable functions and arrays for figures, sounds, and external files.</p>
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>Before this runs, instances of these are scattered all over the Inter tree.
</p>
<p class="commentary">As this is called, <a href="3-su.html" class="internal">Synoptic Utilities</a> has already formed lists of <span class="extract"><span class="extract-syntax">sound_nodes</span></span>
of instances having the kind <span class="extract"><span class="extract-syntax">K_sound_name</span></span>, and so on.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticMultimedia::renumber</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SynopticMultimedia::renumber</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><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">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax">, </span><a href="3-su.html#SP2" class="function-link"><span class="function-syntax">Synoptic::module_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b>There are also resources to create in the <span class="extract"><span class="extract-syntax">synoptic</span></span> module:
</p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">RESOURCEIDSOFFIGURES_SYNID</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RESOURCEIDSOFSOUNDS_SYNID</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NO_EXTERNAL_FILES_SYNID</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLEOFEXTERNALFILES_SYNID</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticMultimedia::redefine</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">SynopticMultimedia::redefine</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_s</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">synid</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::container</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">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Q</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">inter_bookmark</span><span class="plain-syntax"> </span><span class="identifier-syntax">IBM</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Bookmarks::at_end_of_this_package</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">synid</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">RESOURCEIDSOFFIGURES_SYNID:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Symbols::strike_definition</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Q</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_s</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-mlt.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Define the new RESOURCEIDSOFFIGURES array as Q</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</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">RESOURCEIDSOFSOUNDS_SYNID:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Symbols::strike_definition</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Q</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_s</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-mlt.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Define the new RESOURCEIDSOFSOUNDS array as Q</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</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">NO_EXTERNAL_FILES_SYNID:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Symbols::strike_definition</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-mlt.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Define NO_EXTERNAL_FILES</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</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">TABLEOFEXTERNALFILES_SYNID:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Symbols::strike_definition</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Q</span><span class="plain-syntax"> = </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::begin_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_s</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-mlt.html#SP2_4" class="named-paragraph-link"><span class="named-paragraph">Define the new TABLEOFEXTERNALFILES array as Q</span><span class="named-paragraph-number">2.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::end_array</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">default:</span><span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP2_1" class="paragraph-anchor"></a><b>&#167;2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define the new RESOURCEIDSOFFIGURES array as Q</span><span class="named-paragraph-number">2.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</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">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^resource_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-mlt.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_2" class="paragraph-anchor"></a><b>&#167;2.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define the new RESOURCEIDSOFSOUNDS array as Q</span><span class="named-paragraph-number">2.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</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">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^resource_id"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-mlt.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_3" class="paragraph-anchor"></a><b>&#167;2.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define NO_EXTERNAL_FILES</span><span class="named-paragraph-number">2.3</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="3-su.html#SP4" class="function-link"><span class="function-syntax">Synoptic::def_numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_s</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax">), &amp;</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-mlt.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_4" class="paragraph-anchor"></a><b>&#167;2.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define the new TABLEOFEXTERNALFILES array as Q</span><span class="named-paragraph-number">2.4</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</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">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</span><span class="plain-syntax">(</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">list</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="identifier-syntax">node</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^file_value"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::symbol_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, </span><span class="identifier-syntax">vc_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="3-su.html#SP5" class="function-link"><span class="function-syntax">Synoptic::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-mlt.html#SP2">&#167;2</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-scn.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresscurrent">mlt</li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="4-cg.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>
</body>
</html>

View file

@ -119,7 +119,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_activity
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-prp.html#SP2">&#167;2</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-ins.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresscurrent">prp</li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-rlt.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-ins.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresscurrent">prp</li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-mlt.html">mlt</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-rlt.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -367,7 +367,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_rulebook
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-rls.html#SP2_7">&#167;2.7</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-rsp.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresscurrent">rls</li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-act.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-rsp.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresscurrent">rls</li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-mlt.html">mlt</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-act.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -199,7 +199,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_relation
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-rlt.html#SP2">&#167;2</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-prp.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresscurrent">rlt</li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-tbl.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-prp.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresscurrent">rlt</li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-mlt.html">mlt</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-tbl.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -269,7 +269,7 @@ code is less limited.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-rsp.html#SP2">&#167;2</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-lt.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresscurrent">rsp</li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-rls.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-lt.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresscurrent">rsp</li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-mlt.html">mlt</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-rls.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -72,12 +72,11 @@ function togglePopup(material_id) {
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">codegen</a></li><li><a href="index.html#3">Chapter 3: Synoptic Resources</a></li><li><b>Scenes</b></li></ul></div>
<p class="purpose">To renumber the scenes and construct suitable functions and arrays.</p>
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>Before this runs, property packages are scattered all over the Inter tree.
We must allocate each one a unique ID.
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>Before this runs, instances of scenes are scattered all over the Inter tree.
</p>
<p class="commentary">As this is called, <a href="3-su.html" class="internal">Synoptic Utilities</a> has already formed a list <span class="extract"><span class="extract-syntax">property_nodes</span></span>
of packages of type <span class="extract"><span class="extract-syntax">_activity</span></span>.
<p class="commentary">As this is called, <a href="3-su.html" class="internal">Synoptic Utilities</a> has already formed a list <span class="extract"><span class="extract-syntax">scene_nodes</span></span>
of instances having the kind <span class="extract"><span class="extract-syntax">K_scene</span></span>.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -146,7 +145,6 @@ whether any change in status has or has not occurred.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">chs_s</span><span class="plain-syntax"> = </span><a href="3-su.html#SP3" class="function-link"><span class="function-syntax">Synoptic::get_local</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"chs"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">myself_s</span><span class="plain-syntax"> = </span><a href="3-su.html#SP3" class="function-link"><span class="function-syntax">Synoptic::get_local</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"myself"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Again_l</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::reserve_label</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">".Again"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CScene_l</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::reserve_label</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">".CScene"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::place_label</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">Again_l</span><span class="plain-syntax">);</span>
@ -189,14 +187,6 @@ whether any change in status has or has not occurred.
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::ref_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">chs_s</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="comment-syntax"> Produce::inv_call(I, myself_s);</span>
<span class="comment-syntax"> Produce::down(I);</span>
<span class="comment-syntax"> Produce::inv_primitive(I, PREINCREMENT_BIP);</span>
<span class="comment-syntax"> Produce::down(I);</span>
<span class="comment-syntax"> Produce::ref_symbol(I, K_value, chs_s);</span>
<span class="comment-syntax"> Produce::up(I);</span>
<span class="comment-syntax"> Produce::up(I);</span>
<span class="comment-syntax"> Produce::rtrue(I);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">JUMP_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::lab</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">Again_l</span><span class="plain-syntax">);</span>
@ -204,7 +194,7 @@ whether any change in status has or has not occurred.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP2">&#167;2</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-chr.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresscurrent">scn</li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="4-cg.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-chr.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresscurrent">scn</li><li class="progresssection"><a href="3-mlt.html">mlt</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-mlt.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -99,6 +99,9 @@ function togglePopup(material_id) {
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">past_tense_condition_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::go</span><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
@ -117,6 +120,9 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">past_tense_condition_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterTree::traverse</span><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><a href="3-su.html#SP1" class="function-link"><span class="function-syntax">Synoptic::visitor</span></a><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="constant-syntax">0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-lt.html#SP1" class="function-link"><span class="function-syntax">SynopticText::alphabetise</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_nodes</span><span class="plain-syntax">);</span>
@ -132,6 +138,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><a href="3-chr.html#SP1" class="function-link"><span class="function-syntax">SynopticChronology::renumber</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">past_tense_action_nodes</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-ins.html#SP1" class="function-link"><span class="function-syntax">SynopticInstances::renumber</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-scn.html#SP1" class="function-link"><span class="function-syntax">SynopticScenes::renumber</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-mlt.html#SP1" class="function-link"><span class="function-syntax">SynopticMultimedia::renumber</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">repository</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -178,6 +185,12 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Package::defined_by_frame</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">Metadata::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_scene"</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene_nodes</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">Metadata::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_file"</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">file_nodes</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">Metadata::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_figure"</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">figure_nodes</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">Metadata::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_sound"</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
@ -204,13 +217,14 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-tbl.html#SP2" class="function-link"><span class="function-syntax">SynopticTables::redefine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">synid</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-chr.html#SP2" class="function-link"><span class="function-syntax">SynopticChronology::redefine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">synid</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-scn.html#SP2" class="function-link"><span class="function-syntax">SynopticScenes::redefine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">synid</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-mlt.html#SP2" class="function-link"><span class="function-syntax">SynopticMultimedia::redefine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">synid</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Couldn't consolidate $3\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_s</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">"symbol cannot be consolidated"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::module_order</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Synoptic::module_order</span></span>:<br/>Rules - <a href="3-rls.html#SP1">&#167;1</a><br/>Activities - <a href="3-act.html#SP1">&#167;1</a><br/>Actions - <a href="3-act2.html#SP2">&#167;2</a><br/>Instances - <a href="3-ins.html#SP1">&#167;1</a><br/>Properties - <a href="3-prp.html#SP1">&#167;1</a><br/>Relations - <a href="3-rlt.html#SP1">&#167;1</a><br/>Tables - <a href="3-tbl.html#SP1">&#167;1</a><br/>Chronology - <a href="3-chr.html#SP1">&#167;1</a><br/>Scenes - <a href="3-scn.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ent1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ent2</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::module_order</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Synoptic::module_order</span></span>:<br/>Rules - <a href="3-rls.html#SP1">&#167;1</a><br/>Activities - <a href="3-act.html#SP1">&#167;1</a><br/>Actions - <a href="3-act2.html#SP2">&#167;2</a><br/>Instances - <a href="3-ins.html#SP1">&#167;1</a><br/>Properties - <a href="3-prp.html#SP1">&#167;1</a><br/>Relations - <a href="3-rlt.html#SP1">&#167;1</a><br/>Tables - <a href="3-tbl.html#SP1">&#167;1</a><br/>Chronology - <a href="3-chr.html#SP1">&#167;1</a><br/>Scenes - <a href="3-scn.html#SP1">&#167;1</a><br/>Multimedia - <a href="3-mlt.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ent1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ent2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E1</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">ent1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E2</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">ent2</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">E1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">E2</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
@ -282,7 +296,7 @@ function togglePopup(material_id) {
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::def_numeric_constant</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Synoptic::def_numeric_constant</span></span>:<br/>Responses - <a href="3-rsp.html#SP2_1">&#167;2.1</a><br/>Rules - <a href="3-rls.html#SP2_1">&#167;2.1</a><br/>Actions - <a href="3-act2.html#SP3_1">&#167;3.1</a>, <a href="3-act2.html#SP3_5">&#167;3.5</a><br/>Properties - <a href="3-prp.html#SP2_1">&#167;2.1</a><br/>Relations - <a href="3-rlt.html#SP2_1">&#167;2.1</a><br/>Chronology - <a href="3-chr.html#SP2_4">&#167;2.4</a>, <a href="3-chr.html#SP2_5">&#167;2.5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::def_numeric_constant</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Synoptic::def_numeric_constant</span></span>:<br/>Responses - <a href="3-rsp.html#SP2_1">&#167;2.1</a><br/>Rules - <a href="3-rls.html#SP2_1">&#167;2.1</a><br/>Actions - <a href="3-act2.html#SP3_1">&#167;3.1</a>, <a href="3-act2.html#SP3_5">&#167;3.5</a><br/>Properties - <a href="3-prp.html#SP2_1">&#167;2.1</a><br/>Relations - <a href="3-rlt.html#SP2_1">&#167;2.1</a><br/>Chronology - <a href="3-chr.html#SP2_4">&#167;2.4</a>, <a href="3-chr.html#SP2_5">&#167;2.5</a><br/>Multimedia - <a href="3-mlt.html#SP2_3">&#167;2.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Constant::new_numerical</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_IRS_and_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_s</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_IRS_and_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">list_of_unchecked_kind_symbol</span><span class="plain-syntax">),</span>
@ -303,7 +317,7 @@ function togglePopup(material_id) {
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Synoptic::begin_array</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Synoptic::begin_array</span></span>:<br/>Responses - <a href="3-rsp.html#SP2">&#167;2</a><br/>Rules - <a href="3-rls.html#SP2">&#167;2</a><br/>Activities - <a href="3-act.html#SP2">&#167;2</a><br/>Actions - <a href="3-act2.html#SP3">&#167;3</a><br/>Tables - <a href="3-tbl.html#SP2">&#167;2</a><br/>Chronology - <a href="3-chr.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Synoptic::begin_array</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Synoptic::begin_array</span></span>:<br/>Responses - <a href="3-rsp.html#SP2">&#167;2</a><br/>Rules - <a href="3-rls.html#SP2">&#167;2</a><br/>Activities - <a href="3-act.html#SP2">&#167;2</a><br/>Actions - <a href="3-act2.html#SP3">&#167;3</a><br/>Tables - <a href="3-tbl.html#SP2">&#167;2</a><br/>Chronology - <a href="3-chr.html#SP2">&#167;2</a><br/>Multimedia - <a href="3-mlt.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</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">Inode::fill_3</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">CONSTANT_IST</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_IRS_and_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">con_s</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_IRS_and_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">list_of_unchecked_kind_symbol</span><span class="plain-syntax">),</span>
@ -323,7 +337,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::id_from_IRS_and_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">list_of_unchecked_kind_symbol</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CONSTANT_INDIRECT_LIST</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Inter::Bookmarks::baseline</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</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">Synoptic::end_array</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Synoptic::end_array</span></span>:<br/>Responses - <a href="3-rsp.html#SP2">&#167;2</a><br/>Rules - <a href="3-rls.html#SP2">&#167;2</a><br/>Activities - <a href="3-act.html#SP2">&#167;2</a><br/>Actions - <a href="3-act2.html#SP3">&#167;3</a><br/>Tables - <a href="3-tbl.html#SP2">&#167;2</a><br/>Chronology - <a href="3-chr.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::end_array</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Synoptic::end_array</span></span>:<br/>Responses - <a href="3-rsp.html#SP2">&#167;2</a><br/>Rules - <a href="3-rls.html#SP2">&#167;2</a><br/>Activities - <a href="3-act.html#SP2">&#167;2</a><br/>Actions - <a href="3-act2.html#SP3">&#167;3</a><br/>Tables - <a href="3-tbl.html#SP2">&#167;2</a><br/>Chronology - <a href="3-chr.html#SP2">&#167;2</a><br/>Multimedia - <a href="3-mlt.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_error_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Defn::verify_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Bookmarks::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">), </span><span class="identifier-syntax">Q</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">E</span><span class="plain-syntax">) {</span>
@ -333,12 +347,12 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">Inter::Bookmarks::insert</span><span class="plain-syntax">(</span><span class="identifier-syntax">IBM</span><span class="plain-syntax">, </span><span class="identifier-syntax">Q</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">Synoptic::numeric_entry</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Synoptic::numeric_entry</span></span>:<br/>Responses - <a href="3-rsp.html#SP2_2">&#167;2.2</a>, <a href="3-rsp.html#SP2_3">&#167;2.3</a><br/>Rules - <a href="3-rls.html#SP2_3">&#167;2.3</a>, <a href="3-rls.html#SP2_4">&#167;2.4</a>, <a href="3-rls.html#SP2_5">&#167;2.5</a><br/>Activities - <a href="3-act.html#SP2_2">&#167;2.2</a>, <a href="3-act.html#SP2_5">&#167;2.5</a><br/>Actions - <a href="3-act2.html#SP3_2">&#167;3.2</a>, <a href="3-act2.html#SP3_3">&#167;3.3</a>, <a href="3-act2.html#SP3_4">&#167;3.4</a><br/>Tables - <a href="3-tbl.html#SP2_1">&#167;2.1</a>, <a href="3-tbl.html#SP2_4">&#167;2.4</a><br/>Chronology - <a href="3-chr.html#SP2_1">&#167;2.1</a>, <a href="3-chr.html#SP2_2">&#167;2.2</a>, <a href="3-chr.html#SP2_3">&#167;2.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val2</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::numeric_entry</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Synoptic::numeric_entry</span></span>:<br/>Responses - <a href="3-rsp.html#SP2_2">&#167;2.2</a>, <a href="3-rsp.html#SP2_3">&#167;2.3</a><br/>Rules - <a href="3-rls.html#SP2_3">&#167;2.3</a>, <a href="3-rls.html#SP2_4">&#167;2.4</a>, <a href="3-rls.html#SP2_5">&#167;2.5</a><br/>Activities - <a href="3-act.html#SP2_2">&#167;2.2</a>, <a href="3-act.html#SP2_5">&#167;2.5</a><br/>Actions - <a href="3-act2.html#SP3_2">&#167;3.2</a>, <a href="3-act2.html#SP3_3">&#167;3.3</a>, <a href="3-act2.html#SP3_4">&#167;3.4</a><br/>Tables - <a href="3-tbl.html#SP2_1">&#167;2.1</a>, <a href="3-tbl.html#SP2_4">&#167;2.4</a><br/>Chronology - <a href="3-chr.html#SP2_1">&#167;2.1</a>, <a href="3-chr.html#SP2_2">&#167;2.2</a>, <a href="3-chr.html#SP2_3">&#167;2.3</a><br/>Multimedia - <a href="3-mlt.html#SP2_1">&#167;2.1</a>, <a href="3-mlt.html#SP2_2">&#167;2.2</a>, <a href="3-mlt.html#SP2_4">&#167;2.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val2</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">Inode::extend</span><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"cannot extend"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Q</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">Q</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">extent</span><span class="plain-syntax">-2] = </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Q</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">data</span><span class="plain-syntax">[</span><span class="identifier-syntax">Q</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">W</span><span class="plain-syntax">.</span><span class="identifier-syntax">extent</span><span class="plain-syntax">-1] = </span><span class="identifier-syntax">val2</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">Synoptic::symbol_entry</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Synoptic::symbol_entry</span></span>:<br/>Responses - <a href="3-rsp.html#SP2_2">&#167;2.2</a><br/>Rules - <a href="3-rls.html#SP2_4">&#167;2.4</a>, <a href="3-rls.html#SP2_5">&#167;2.5</a><br/>Activities - <a href="3-act.html#SP2_1">&#167;2.1</a>, <a href="3-act.html#SP2_3">&#167;2.3</a>, <a href="3-act.html#SP2_4">&#167;2.4</a>, <a href="3-act.html#SP2_5">&#167;2.5</a><br/>Actions - <a href="3-act2.html#SP3_2">&#167;3.2</a>, <a href="3-act2.html#SP3_4">&#167;3.4</a><br/>Tables - <a href="3-tbl.html#SP2_1">&#167;2.1</a><br/>Chronology - <a href="3-chr.html#SP2_1">&#167;2.1</a>, <a href="3-chr.html#SP2_3">&#167;2.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::symbol_entry</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Synoptic::symbol_entry</span></span>:<br/>Responses - <a href="3-rsp.html#SP2_2">&#167;2.2</a><br/>Rules - <a href="3-rls.html#SP2_4">&#167;2.4</a>, <a href="3-rls.html#SP2_5">&#167;2.5</a><br/>Activities - <a href="3-act.html#SP2_1">&#167;2.1</a>, <a href="3-act.html#SP2_3">&#167;2.3</a>, <a href="3-act.html#SP2_4">&#167;2.4</a>, <a href="3-act.html#SP2_5">&#167;2.5</a><br/>Actions - <a href="3-act2.html#SP3_2">&#167;3.2</a>, <a href="3-act2.html#SP3_4">&#167;3.4</a><br/>Tables - <a href="3-tbl.html#SP2_1">&#167;2.1</a><br/>Chronology - <a href="3-chr.html#SP2_1">&#167;2.1</a>, <a href="3-chr.html#SP2_3">&#167;2.3</a><br/>Multimedia - <a href="3-mlt.html#SP2_4">&#167;2.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</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">Inode::extend</span><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"cannot extend"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::container</span><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">local_S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTables::create_with_unique_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">Inter::Packages::scope</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">), </span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol_name</span><span class="plain-syntax">);</span>
@ -393,7 +407,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-ero.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">su</li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-ext.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-ero.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">su</li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresssection"><a href="3-tbl.html">tbl</a></li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-mlt.html">mlt</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-ext.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -288,7 +288,7 @@ of packages of type <span class="extract"><span class="extract-syntax">_table</s
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-tbl.html#SP2">&#167;2</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-rlt.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresscurrent">tbl</li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-chr.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-rlt.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-su.html">su</a></li><li class="progresssection"><a href="3-ext.html">ext</a></li><li class="progresssection"><a href="3-lt.html">lt</a></li><li class="progresssection"><a href="3-rsp.html">rsp</a></li><li class="progresssection"><a href="3-rls.html">rls</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-act2.html">act2</a></li><li class="progresssection"><a href="3-ins.html">ins</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-rlt.html">rlt</a></li><li class="progresscurrent">tbl</li><li class="progresssection"><a href="3-chr.html">chr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-mlt.html">mlt</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="3-chr.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -305,7 +305,7 @@ we also have to direct it to a given text.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-scn.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-su.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresscurrent">cg</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-cal.html">cal</a></li><li class="progresssection"><a href="4-iap.html">iap</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="4-fc.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-mlt.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-su.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresscurrent">cg</li><li class="progresssection"><a href="4-fc.html">fc</a></li><li class="progresssection"><a href="4-cal.html">cal</a></li><li class="progresssection"><a href="4-iap.html">iap</a></li><li class="progresssection"><a href="4-vrb.html">vrb</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progressnext"><a href="4-fc.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -228,6 +228,11 @@
<spon class="sectiontitle">Scenes</span></a> -
<span class="sectionpurpose">To renumber the scenes and construct suitable functions and arrays.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-mlt.html">
<spon class="sectiontitle">Multimedia</span></a> -
<span class="sectionpurpose">To construct suitable functions and arrays for figures, sounds, and external files.</span></p>
</li>
</ul>
</li>
<li>

View file

@ -353,6 +353,7 @@ so on. Those absolute basics are made here.
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTRelations::compile_defined_relations</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTRelations::compile_synoptic_resources</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">Chronology::compile_synoptic_resources</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTTables::compile_synoptic_resources</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTMeasurements::compile_test_functions</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="1-htc.html#SP9" class="function-link"><span class="function-syntax">Sequence::undertake_queued_tasks</span></a><span class="plain-syntax">)</span>
</pre>

View file

@ -335,6 +335,7 @@ by an unspecified other project, or by a project identified by its IFID.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">file_ownership</span><span class="plain-syntax">; </span><span class="comment-syntax"> one of the </span><span class="extract"><span class="extract-syntax">OWNED_BY_*</span></span><span class="comment-syntax"> values above</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IFID_of_owner</span><span class="plain-syntax">; </span><span class="comment-syntax"> if we know that</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">external_file_compilation_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">compilation_data</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="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">files_data</span><span class="plain-syntax">;</span>
</pre>
@ -360,6 +361,7 @@ manages to make a figure, a problem message is thrown.
<span class="plain-syntax"> </span><span class="identifier-syntax">fd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">file_ownership</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ownership</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">fd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">IFID_of_owner</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">ifid_of_file</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">fd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">compilation_data</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RTExternalFiles::new_data</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">fd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_instance</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -88,7 +88,7 @@ function togglePopup(material_id) {
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Figures::production_line</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">debugging</span><span class="plain-syntax">, </span><span class="identifier-syntax">stopwatch_timer</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sequence_timer</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">stage</span><span class="plain-syntax"> == </span><span class="identifier-syntax">INTER1_CSEQ</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTFigures::compile_ResourceIDsOfFigures_array</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTFigures::compile_metadata</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -234,6 +234,7 @@ detects that this has happened, and sets <span class="extract"><span class="extr
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">filename_of_image_file</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">figure_number</span><span class="plain-syntax">; </span><span class="comment-syntax"> resource number of this picture inside Blorb</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">alt_description</span><span class="plain-syntax">; </span><span class="comment-syntax"> word number of double-quoted description</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="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">figures_data</span><span class="plain-syntax">;</span>
@ -258,6 +259,7 @@ manages to make a figure, a problem message is thrown.
<span class="plain-syntax"> </span><span class="identifier-syntax">figd</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</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">figd</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">figure_number</span><span class="plain-syntax"> = </span><span class="identifier-syntax">id</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">figd</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">alt_description</span><span class="plain-syntax"> = </span><span class="identifier-syntax">alt</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">figd</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_instance</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">id</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">F_cover_art</span><span class="plain-syntax"> = </span><span class="identifier-syntax">figd</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">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -88,7 +88,7 @@ function togglePopup(material_id) {
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Sounds::production_line</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">debugging</span><span class="plain-syntax">, </span><span class="identifier-syntax">stopwatch_timer</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sequence_timer</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">stage</span><span class="plain-syntax"> == </span><span class="identifier-syntax">INTER1_CSEQ</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTSounds::compile_ResourceIDsOfSounds_array</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTSounds::compile_metadata</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -226,6 +226,7 @@ detects that this has happened, and sets <span class="extract"><span class="extr
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">filename_of_sound_file</span><span class="plain-syntax">; </span><span class="comment-syntax"> relative to the Resources folder</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">sound_number</span><span class="plain-syntax">; </span><span class="comment-syntax"> resource number of this picture inside Blorb</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">alt_description</span><span class="plain-syntax">; </span><span class="comment-syntax"> word number of double-quoted description</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="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">sounds_data</span><span class="plain-syntax">;</span>
</pre>
@ -248,6 +249,7 @@ manages to make a sound, a problem message is thrown.
<span class="plain-syntax"> </span><span class="identifier-syntax">sd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</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">sd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">sound_number</span><span class="plain-syntax"> = </span><span class="identifier-syntax">id</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">sd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">alt_description</span><span class="plain-syntax"> = </span><span class="identifier-syntax">alt</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">sd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_instance</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -92,7 +92,7 @@ enforced; it's fine to store arbitrary data with <span class="extract"><span cla
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::begin</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::begin</span></span>:<br/>List Literals - <a href="4-ll.html#SP1">&#167;1</a>, <a href="4-ll.html#SP2">&#167;2</a><br/>Text Literals - <a href="4-tl.html#SP1">&#167;1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">&#167;1</a><br/>Responses - <a href="4-rsp.html#SP8_3">&#167;8.3</a>, <a href="4-rsp.html#SP8_4">&#167;8.4</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Rules - <a href="5-rls.html#SP7_1_1">&#167;7.1.1</a>, <a href="5-rls.html#SP14_2">&#167;14.2</a>, <a href="5-rls.html#SP14_3">&#167;14.3</a>, <a href="5-rls.html#SP14_4">&#167;14.4</a><br/>Activities - <a href="5-act.html#SP2_1">&#167;2.1</a>, <a href="5-act.html#SP2_2">&#167;2.2</a>, <a href="5-act.html#SP2_3">&#167;2.3</a>, <a href="5-act.html#SP2_5">&#167;2.5</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP18_1">&#167;18.1</a><br/>Verbs at Run Time - <a href="5-vart.html#SP4">&#167;4</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1">&#167;4.1</a>, <a href="5-rart.html#SP5">&#167;5</a>, <a href="5-rart.html#SP8">&#167;8</a>, <a href="5-rart.html#SP8_3">&#167;8.3</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_3">&#167;4.3</a><br/>Chronology - <a href="5-chr.html#SP5_3">&#167;5.3</a><br/>Naming - <a href="6-nmn.html#SP2">&#167;2</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP2_2">&#167;2.2</a>, <a href="6-tm.html#SP3">&#167;3</a><br/>Actions - <a href="7-act.html#SP1">&#167;1</a>, <a href="7-act.html#SP6_4">&#167;6.4</a>, <a href="7-act.html#SP6_5">&#167;6.5</a><br/>Parsing - <a href="8-prs.html#SP2">&#167;2</a><br/>Figures - <a href="9-fgr.html#SP1">&#167;1</a><br/>Sound Effects - <a href="9-se.html#SP1">&#167;1</a><br/>External Files - <a href="9-ef.html#SP1">&#167;1</a><br/>Test Scripts - <a href="10-ts.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><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">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::begin</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::begin</span></span>:<br/>List Literals - <a href="4-ll.html#SP1">&#167;1</a>, <a href="4-ll.html#SP2">&#167;2</a><br/>Text Literals - <a href="4-tl.html#SP1">&#167;1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">&#167;1</a><br/>Responses - <a href="4-rsp.html#SP8_3">&#167;8.3</a>, <a href="4-rsp.html#SP8_4">&#167;8.4</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Rules - <a href="5-rls.html#SP7_1_1">&#167;7.1.1</a>, <a href="5-rls.html#SP14_2">&#167;14.2</a>, <a href="5-rls.html#SP14_3">&#167;14.3</a>, <a href="5-rls.html#SP14_4">&#167;14.4</a><br/>Activities - <a href="5-act.html#SP2_1">&#167;2.1</a>, <a href="5-act.html#SP2_2">&#167;2.2</a>, <a href="5-act.html#SP2_3">&#167;2.3</a>, <a href="5-act.html#SP2_5">&#167;2.5</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP18_1">&#167;18.1</a><br/>Verbs at Run Time - <a href="5-vart.html#SP4">&#167;4</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1">&#167;4.1</a>, <a href="5-rart.html#SP5">&#167;5</a>, <a href="5-rart.html#SP8">&#167;8</a>, <a href="5-rart.html#SP8_3">&#167;8.3</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP7_1">&#167;7.1</a><br/>Chronology - <a href="5-chr.html#SP5_3">&#167;5.3</a><br/>Naming - <a href="6-nmn.html#SP2">&#167;2</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP2_2">&#167;2.2</a>, <a href="6-tm.html#SP3">&#167;3</a><br/>Actions - <a href="7-act.html#SP1">&#167;1</a>, <a href="7-act.html#SP6_4">&#167;6.4</a>, <a href="7-act.html#SP6_5">&#167;6.5</a><br/>Parsing - <a href="8-prs.html#SP2">&#167;2</a><br/>Figures - <a href="9-fgr.html#SP1">&#167;1</a><br/>Sound Effects - <a href="9-se.html#SP1">&#167;1</a><br/>External Files - <a href="9-ef.html#SP1">&#167;1</a><br/>Test Scripts - <a href="10-ts.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><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="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP9" class="function-link"><span class="function-syntax">EmitArrays::begin_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">;</span>
@ -105,7 +105,7 @@ enforced; it's fine to store arbitrary data with <span class="extract"><span cla
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::begin_byte</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::begin_byte</span></span>:<br/>Activities - <a href="5-act.html#SP2_4">&#167;2.4</a><br/>Relations at Run Time - <a href="5-rart.html#SP8_3">&#167;8.3</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_2">&#167;4.2</a><br/>Test Scripts - <a href="10-ts.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><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">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::begin_byte</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::begin_byte</span></span>:<br/>Activities - <a href="5-act.html#SP2_4">&#167;2.4</a><br/>Relations at Run Time - <a href="5-rart.html#SP8_3">&#167;8.3</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_2">&#167;4.2</a>, <a href="5-rsft.html#SP7_2">&#167;7.2</a><br/>Test Scripts - <a href="10-ts.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><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="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP9" class="function-link"><span class="function-syntax">EmitArrays::begin_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</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">Produce::annotate_iname_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">BYTEARRAY_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
@ -158,7 +158,7 @@ which would be a typesafe list in I7, so they can be absolutely any data,
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::numeric_entry</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::numeric_entry</span></span>:<br/>List Literals - <a href="4-ll.html#SP1">&#167;1</a>, <a href="4-ll.html#SP2">&#167;2</a>, <a href="4-ll.html#SP7_1">&#167;7.1</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Relation Literals - <a href="4-rl.html#SP1">&#167;1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">&#167;1</a><br/>Rules - <a href="5-rls.html#SP7_1_1">&#167;7.1.1</a>, <a href="5-rls.html#SP7_1_2">&#167;7.1.2</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP11">&#167;11</a>, <a href="5-rsfk.html#SP18_1_1_1">&#167;18.1.1.1</a>, <a href="5-rsfk.html#SP18_1_1_2">&#167;18.1.1.2</a>, <a href="5-rsfk.html#SP22">&#167;22</a><br/>Verbs at Run Time - <a href="5-vart.html#SP4">&#167;4</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1">&#167;4.1</a>, <a href="5-rart.html#SP4_1_3">&#167;4.1.3</a>, <a href="5-rart.html#SP5">&#167;5</a>, <a href="5-rart.html#SP7">&#167;7</a>, <a href="5-rart.html#SP8_2">&#167;8.2</a>, <a href="5-rart.html#SP8_3">&#167;8.3</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_1_1_1_1_3">&#167;4.1.1.1.1.3</a>, <a href="5-rsft.html#SP4_1_1_1_1_4">&#167;4.1.1.1.1.4</a>, <a href="5-rsft.html#SP4_2_3">&#167;4.2.3</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP2_2">&#167;2.2</a><br/>Actions - <a href="7-act.html#SP1">&#167;1</a><br/>Figures - <a href="9-fgr.html#SP1">&#167;1</a><br/>Sound Effects - <a href="9-se.html#SP1">&#167;1</a><br/>External Files - <a href="9-ef.html#SP1">&#167;1</a><br/>Test Scripts - <a href="10-ts.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::numeric_entry</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::numeric_entry</span></span>:<br/>List Literals - <a href="4-ll.html#SP1">&#167;1</a>, <a href="4-ll.html#SP2">&#167;2</a>, <a href="4-ll.html#SP7_1">&#167;7.1</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Relation Literals - <a href="4-rl.html#SP1">&#167;1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">&#167;1</a><br/>Rules - <a href="5-rls.html#SP7_1_1">&#167;7.1.1</a>, <a href="5-rls.html#SP7_1_2">&#167;7.1.2</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP11">&#167;11</a>, <a href="5-rsfk.html#SP18_1_1_1">&#167;18.1.1.1</a>, <a href="5-rsfk.html#SP18_1_1_2">&#167;18.1.1.2</a>, <a href="5-rsfk.html#SP22">&#167;22</a><br/>Verbs at Run Time - <a href="5-vart.html#SP4">&#167;4</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1">&#167;4.1</a>, <a href="5-rart.html#SP4_1_3">&#167;4.1.3</a>, <a href="5-rart.html#SP5">&#167;5</a>, <a href="5-rart.html#SP7">&#167;7</a>, <a href="5-rart.html#SP8_2">&#167;8.2</a>, <a href="5-rart.html#SP8_3">&#167;8.3</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_1_1_1_1_4">&#167;4.1.1.1.1.4</a>, <a href="5-rsft.html#SP4_2_3">&#167;4.2.3</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP2_2">&#167;2.2</a><br/>Actions - <a href="7-act.html#SP1">&#167;1</a><br/>External Files - <a href="9-ef.html#SP1">&#167;1</a><br/>Test Scripts - <a href="10-ts.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP10" class="function-link"><span class="function-syntax">EmitArrays::entry_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -213,7 +213,7 @@ difference to compiled code.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::end</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::end</span></span>:<br/>List Literals - <a href="4-ll.html#SP1">&#167;1</a>, <a href="4-ll.html#SP2">&#167;2</a><br/>Text Literals - <a href="4-tl.html#SP1">&#167;1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">&#167;1</a><br/>Responses - <a href="4-rsp.html#SP8_3">&#167;8.3</a>, <a href="4-rsp.html#SP8_4">&#167;8.4</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Relation Literals - <a href="4-rl.html#SP1">&#167;1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">&#167;1</a><br/>Rules - <a href="5-rls.html#SP7_1_5">&#167;7.1.5</a>, <a href="5-rls.html#SP14_2">&#167;14.2</a>, <a href="5-rls.html#SP14_3">&#167;14.3</a>, <a href="5-rls.html#SP14_4">&#167;14.4</a><br/>Activities - <a href="5-act.html#SP2_1">&#167;2.1</a>, <a href="5-act.html#SP2_2">&#167;2.2</a>, <a href="5-act.html#SP2_3">&#167;2.3</a>, <a href="5-act.html#SP2_4">&#167;2.4</a>, <a href="5-act.html#SP2_5">&#167;2.5</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP18_1">&#167;18.1</a><br/>Verbs at Run Time - <a href="5-vart.html#SP4">&#167;4</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1">&#167;4.1</a>, <a href="5-rart.html#SP4_1_2">&#167;4.1.2</a>, <a href="5-rart.html#SP5">&#167;5</a>, <a href="5-rart.html#SP8">&#167;8</a>, <a href="5-rart.html#SP8_3">&#167;8.3</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_1_1_1">&#167;4.1.1.1</a>, <a href="5-rsft.html#SP4_1_1_1_1">&#167;4.1.1.1.1</a>, <a href="5-rsft.html#SP4_2">&#167;4.2</a>, <a href="5-rsft.html#SP4_3">&#167;4.3</a><br/>Chronology - <a href="5-chr.html#SP5_1">&#167;5.1</a>, <a href="5-chr.html#SP5_2">&#167;5.2</a>, <a href="5-chr.html#SP5_3">&#167;5.3</a><br/>Naming - <a href="6-nmn.html#SP2">&#167;2</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP2_2">&#167;2.2</a>, <a href="6-tm.html#SP3">&#167;3</a><br/>Actions - <a href="7-act.html#SP1">&#167;1</a>, <a href="7-act.html#SP6_2">&#167;6.2</a>, <a href="7-act.html#SP6_4">&#167;6.4</a>, <a href="7-act.html#SP6_5">&#167;6.5</a><br/>Parsing - <a href="8-prs.html#SP2">&#167;2</a><br/>Command Grammars - <a href="8-cg.html#SP7">&#167;7</a><br/>Figures - <a href="9-fgr.html#SP1">&#167;1</a><br/>Sound Effects - <a href="9-se.html#SP1">&#167;1</a><br/>External Files - <a href="9-ef.html#SP1">&#167;1</a><br/>Test Scripts - <a href="10-ts.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::end</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::end</span></span>:<br/>List Literals - <a href="4-ll.html#SP1">&#167;1</a>, <a href="4-ll.html#SP2">&#167;2</a><br/>Text Literals - <a href="4-tl.html#SP1">&#167;1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">&#167;1</a><br/>Responses - <a href="4-rsp.html#SP8_3">&#167;8.3</a>, <a href="4-rsp.html#SP8_4">&#167;8.4</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Relation Literals - <a href="4-rl.html#SP1">&#167;1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">&#167;1</a><br/>Rules - <a href="5-rls.html#SP7_1_5">&#167;7.1.5</a>, <a href="5-rls.html#SP14_2">&#167;14.2</a>, <a href="5-rls.html#SP14_3">&#167;14.3</a>, <a href="5-rls.html#SP14_4">&#167;14.4</a><br/>Activities - <a href="5-act.html#SP2_1">&#167;2.1</a>, <a href="5-act.html#SP2_2">&#167;2.2</a>, <a href="5-act.html#SP2_3">&#167;2.3</a>, <a href="5-act.html#SP2_4">&#167;2.4</a>, <a href="5-act.html#SP2_5">&#167;2.5</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP18_1">&#167;18.1</a><br/>Verbs at Run Time - <a href="5-vart.html#SP4">&#167;4</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1">&#167;4.1</a>, <a href="5-rart.html#SP4_1_2">&#167;4.1.2</a>, <a href="5-rart.html#SP5">&#167;5</a>, <a href="5-rart.html#SP8">&#167;8</a>, <a href="5-rart.html#SP8_3">&#167;8.3</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_1_1_1">&#167;4.1.1.1</a>, <a href="5-rsft.html#SP4_1_1_1_1">&#167;4.1.1.1.1</a>, <a href="5-rsft.html#SP4_2">&#167;4.2</a>, <a href="5-rsft.html#SP7_1">&#167;7.1</a>, <a href="5-rsft.html#SP7_2">&#167;7.2</a><br/>Chronology - <a href="5-chr.html#SP5_1">&#167;5.1</a>, <a href="5-chr.html#SP5_2">&#167;5.2</a>, <a href="5-chr.html#SP5_3">&#167;5.3</a><br/>Naming - <a href="6-nmn.html#SP2">&#167;2</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP2_2">&#167;2.2</a>, <a href="6-tm.html#SP3">&#167;3</a><br/>Actions - <a href="7-act.html#SP1">&#167;1</a>, <a href="7-act.html#SP6_2">&#167;6.2</a>, <a href="7-act.html#SP6_4">&#167;6.4</a>, <a href="7-act.html#SP6_5">&#167;6.5</a><br/>Parsing - <a href="8-prs.html#SP2">&#167;2</a><br/>Command Grammars - <a href="8-cg.html#SP7">&#167;7</a><br/>Figures - <a href="9-fgr.html#SP1">&#167;1</a><br/>Sound Effects - <a href="9-se.html#SP1">&#167;1</a><br/>External Files - <a href="9-ef.html#SP1">&#167;1</a><br/>Test Scripts - <a href="10-ts.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP11" class="function-link"><span class="function-syntax">EmitArrays::end_inner</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Packaging::exit</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

View file

@ -140,7 +140,7 @@ start of a function.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::comment</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">EmitCode::comment</span></span>:<br/>Extensions - <a href="3-ext.html#SP1_1">&#167;1.1</a>, <a href="3-ext.html#SP1_2">&#167;1.2</a>, <a href="3-ext.html#SP1_3">&#167;1.3</a><br/>Responses - <a href="4-rsp.html#SP8_1">&#167;8.1</a><br/>Rules - <a href="5-rls.html#SP5">&#167;5</a>, <a href="5-rls.html#SP14_4">&#167;14.4</a>, <a href="5-rls.html#SP14_5">&#167;14.5</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP26_1">&#167;26.1</a><br/>Literal Patterns at Run Time - <a href="5-lpart.html#SP2">&#167;2</a>, <a href="5-lpart.html#SP4">&#167;4</a><br/>Adjectives - <a href="5-adj.html#SP3_2">&#167;3.2</a><br/>Verbs at Run Time - <a href="5-vart.html#SP4_2">&#167;4.2</a><br/>Relations at Run Time - <a href="5-rart.html#SP22_2">&#167;22.2</a>, <a href="5-rart.html#SP22_3">&#167;22.3</a>, <a href="5-rart.html#SP22_4">&#167;22.4</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP2">&#167;2</a>, <a href="5-rsft.html#SP5">&#167;5</a><br/>Chronology - <a href="5-chr.html#SP5_6">&#167;5.6</a><br/>Scenes - <a href="6-scn.html#SP8_1">&#167;8.1</a>, <a href="6-scn.html#SP8_2">&#167;8.2</a><br/>Actions - <a href="7-act.html#SP6_6">&#167;6.6</a><br/>General Parsing Routines - <a href="8-gpr.html#SP11">&#167;11</a>, <a href="8-gpr.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::comment</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">EmitCode::comment</span></span>:<br/>Extensions - <a href="3-ext.html#SP1_1">&#167;1.1</a>, <a href="3-ext.html#SP1_2">&#167;1.2</a>, <a href="3-ext.html#SP1_3">&#167;1.3</a><br/>Responses - <a href="4-rsp.html#SP8_1">&#167;8.1</a><br/>Rules - <a href="5-rls.html#SP5">&#167;5</a>, <a href="5-rls.html#SP14_4">&#167;14.4</a>, <a href="5-rls.html#SP14_5">&#167;14.5</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP26_1">&#167;26.1</a><br/>Literal Patterns at Run Time - <a href="5-lpart.html#SP2">&#167;2</a>, <a href="5-lpart.html#SP4">&#167;4</a><br/>Adjectives - <a href="5-adj.html#SP3_2">&#167;3.2</a><br/>Verbs at Run Time - <a href="5-vart.html#SP4_2">&#167;4.2</a><br/>Relations at Run Time - <a href="5-rart.html#SP22_2">&#167;22.2</a>, <a href="5-rart.html#SP22_3">&#167;22.3</a>, <a href="5-rart.html#SP22_4">&#167;22.4</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP5">&#167;5</a>, <a href="5-rsft.html#SP7_3">&#167;7.3</a><br/>Chronology - <a href="5-chr.html#SP5_6">&#167;5.6</a><br/>Scenes - <a href="6-scn.html#SP8_1">&#167;8.1</a>, <a href="6-scn.html#SP8_2">&#167;8.2</a><br/>Actions - <a href="7-act.html#SP6_6">&#167;6.6</a><br/>General Parsing Routines - <a href="8-gpr.html#SP11">&#167;11</a>, <a href="8-gpr.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</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">Functions::a_function_is_being_compiled</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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"code comment emitted outside function"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">ID</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Warehouse::create_text</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::warehouse</span></a><span class="plain-syntax">(), </span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::package</span></a><span class="plain-syntax">());</span>

View file

@ -331,7 +331,7 @@ it represents an actual number at run-time, the second if not:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::numeric_constant</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Emit::numeric_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">&#167;23</a><br/>Compilation Units - <a href="2-cu.html#SP2_1_2">&#167;2.1.2</a><br/>Fundamental Constants - <a href="3-fc.html#SP2">&#167;2</a><br/>Use Options - <a href="3-uo.html#SP1_1">&#167;1.1</a>, <a href="3-uo.html#SP1_3">&#167;1.3</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a>, <a href="4-rsp.html#SP8_2">&#167;8.2</a><br/>Rules - <a href="5-rls.html#SP10">&#167;10</a>, <a href="5-rls.html#SP14_1">&#167;14.1</a><br/>Activities - <a href="5-act.html#SP2">&#167;2</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP14">&#167;14</a>, <a href="5-rsfk.html#SP26">&#167;26</a>, <a href="5-rsfk.html#SP30">&#167;30</a><br/>Properties - <a href="5-prp.html#SP6">&#167;6</a>, <a href="5-prp.html#SP13_1">&#167;13.1</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1">&#167;4.1</a>, <a href="5-rart.html#SP8_3">&#167;8.3</a>, <a href="5-rart.html#SP22_1">&#167;22.1</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP1">&#167;1</a>, <a href="5-rsft.html#SP4_1_1_1_1_3">&#167;4.1.1.1.1.3</a>, <a href="5-rsft.html#SP4_1_2">&#167;4.1.2</a><br/>Chronology - <a href="5-chr.html#SP2">&#167;2</a>, <a href="5-chr.html#SP3">&#167;3</a>, <a href="5-chr.html#SP5_4">&#167;5.4</a>, <a href="5-chr.html#SP5_5">&#167;5.5</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP2_1">&#167;2.1</a><br/>The Score - <a href="6-ts.html#SP1">&#167;1</a><br/>Actions - <a href="7-act.html#SP1">&#167;1</a>, <a href="7-act.html#SP6_1">&#167;6.1</a>, <a href="7-act.html#SP6_3">&#167;6.3</a><br/>Command Grammars - <a href="8-cg.html#SP1">&#167;1</a>, <a href="8-cg.html#SP2">&#167;2</a><br/>External Files - <a href="9-ef.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::numeric_constant</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Emit::numeric_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">&#167;23</a><br/>Compilation Units - <a href="2-cu.html#SP2_1_2">&#167;2.1.2</a><br/>Fundamental Constants - <a href="3-fc.html#SP2">&#167;2</a><br/>Use Options - <a href="3-uo.html#SP1_1">&#167;1.1</a>, <a href="3-uo.html#SP1_3">&#167;1.3</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a>, <a href="4-rsp.html#SP8_2">&#167;8.2</a><br/>Rules - <a href="5-rls.html#SP10">&#167;10</a>, <a href="5-rls.html#SP14_1">&#167;14.1</a><br/>Activities - <a href="5-act.html#SP2">&#167;2</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP14">&#167;14</a>, <a href="5-rsfk.html#SP26">&#167;26</a>, <a href="5-rsfk.html#SP30">&#167;30</a><br/>Properties - <a href="5-prp.html#SP6">&#167;6</a>, <a href="5-prp.html#SP13_1">&#167;13.1</a><br/>Relations at Run Time - <a href="5-rart.html#SP4_1">&#167;4.1</a>, <a href="5-rart.html#SP8_3">&#167;8.3</a>, <a href="5-rart.html#SP22_1">&#167;22.1</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP1">&#167;1</a>, <a href="5-rsft.html#SP4_1_1_1_1_3">&#167;4.1.1.1.1.3</a>, <a href="5-rsft.html#SP4_1_2">&#167;4.1.2</a><br/>Chronology - <a href="5-chr.html#SP2">&#167;2</a>, <a href="5-chr.html#SP3">&#167;3</a>, <a href="5-chr.html#SP5_4">&#167;5.4</a>, <a href="5-chr.html#SP5_5">&#167;5.5</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP2_1">&#167;2.1</a><br/>The Score - <a href="6-ts.html#SP1">&#167;1</a><br/>Actions - <a href="7-act.html#SP1">&#167;1</a>, <a href="7-act.html#SP6_1">&#167;6.1</a>, <a href="7-act.html#SP6_3">&#167;6.3</a><br/>Command Grammars - <a href="8-cg.html#SP1">&#167;1</a>, <a href="8-cg.html#SP2">&#167;2</a><br/>Figures - <a href="9-fgr.html#SP1">&#167;1</a><br/>Sound Effects - <a href="9-se.html#SP1">&#167;1</a><br/>External Files - <a href="9-ef.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">int_interk</span><span class="plain-syntax">, </span><span class="identifier-syntax">INVALID_IANN</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -381,7 +381,7 @@ it represents an actual number at run-time, the second if not:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::iname_constant</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">Emit::iname_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">&#167;23</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a><br/>Rules - <a href="5-rls.html#SP2">&#167;2</a>, <a href="5-rls.html#SP7">&#167;7</a>, <a href="5-rls.html#SP10">&#167;10</a>, <a href="5-rls.html#SP12">&#167;12</a><br/>Activities - <a href="5-act.html#SP2">&#167;2</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP14">&#167;14</a><br/>Instance Counting - <a href="5-ic.html#SP9">&#167;9</a><br/>Relations at Run Time - <a href="5-rart.html#SP1">&#167;1</a>, <a href="5-rart.html#SP4">&#167;4</a>, <a href="5-rart.html#SP4_1">&#167;4.1</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_1_1_1_1_3">&#167;4.1.1.1.1.3</a><br/>Chronology - <a href="5-chr.html#SP3">&#167;3</a>, <a href="5-chr.html#SP4">&#167;4</a><br/>Naming - <a href="6-nmn.html#SP2">&#167;2</a><br/>Spatial - <a href="6-spt.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP2_1">&#167;2.1</a><br/>The Score - <a href="6-ts.html#SP1">&#167;1</a><br/>Scenes - <a href="6-scn.html#SP2">&#167;2</a>, <a href="6-scn.html#SP6">&#167;6</a><br/>Actions - <a href="7-act.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_iname</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::iname_constant</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">Emit::iname_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">&#167;23</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a><br/>Rules - <a href="5-rls.html#SP2">&#167;2</a>, <a href="5-rls.html#SP7">&#167;7</a>, <a href="5-rls.html#SP10">&#167;10</a>, <a href="5-rls.html#SP12">&#167;12</a><br/>Activities - <a href="5-act.html#SP2">&#167;2</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP14">&#167;14</a><br/>Instance Counting - <a href="5-ic.html#SP9">&#167;9</a><br/>Relations at Run Time - <a href="5-rart.html#SP1">&#167;1</a>, <a href="5-rart.html#SP4">&#167;4</a>, <a href="5-rart.html#SP4_1">&#167;4.1</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_1_1_1_1_3">&#167;4.1.1.1.1.3</a><br/>Chronology - <a href="5-chr.html#SP3">&#167;3</a>, <a href="5-chr.html#SP4">&#167;4</a><br/>Naming - <a href="6-nmn.html#SP2">&#167;2</a><br/>Spatial - <a href="6-spt.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP2_1">&#167;2.1</a><br/>The Score - <a href="6-ts.html#SP1">&#167;1</a><br/>Scenes - <a href="6-scn.html#SP2">&#167;2</a>, <a href="6-scn.html#SP6">&#167;6</a><br/>Actions - <a href="7-act.html#SP1">&#167;1</a><br/>External Files - <a href="9-ef.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_iname</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::define_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::kind_to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>

File diff suppressed because one or more lines are too long

View file

@ -105,6 +105,15 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K_scene</span><span class="plain-syntax">) &amp;&amp; (</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_scene</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">icd</span><span class="plain-syntax">.</span><span class="element-syntax">instance_package</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="constant-syntax">INSTANCE_IS_SCENE_METADATA_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</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_sound_name</span><span class="plain-syntax">) &amp;&amp; (</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_sound_name</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">icd</span><span class="plain-syntax">.</span><span class="element-syntax">instance_package</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="constant-syntax">INSTANCE_IS_SOUND_METADATA_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</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_figure_name</span><span class="plain-syntax">) &amp;&amp; (</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_figure_name</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">icd</span><span class="plain-syntax">.</span><span class="element-syntax">instance_package</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="constant-syntax">INSTANCE_IS_FIGURE_METADATA_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</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_external_file</span><span class="plain-syntax">) &amp;&amp; (</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_external_file</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">icd</span><span class="plain-syntax">.</span><span class="element-syntax">instance_package</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="constant-syntax">INSTANCE_IS_EXF_METADATA_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
@ -169,7 +178,7 @@ declarations) and finally return <span class="extract"><span class="extract-synt
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">iname</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="function-syntax">RTInstances::package</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">RTInstances::package</span></span>:<br/>Emit Property Values - <a href="5-epv.html#SP2">&#167;2</a><br/>Naming - <a href="6-nmn.html#SP2">&#167;2</a><br/>Backdrops - <a href="6-bck.html#SP1">&#167;1</a><br/>Regions - <a href="6-rgn.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP3">&#167;3</a><br/>Scenes - <a href="6-scn.html#SP2">&#167;2</a>, <a href="6-scn.html#SP6">&#167;6</a><br/>Actions - <a href="7-act.html#SP1">&#167;1</a><br/>Parsing - <a href="8-prs.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">RTInstances::package</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">RTInstances::package</span></span>:<br/>Emit Property Values - <a href="5-epv.html#SP2">&#167;2</a><br/>Naming - <a href="6-nmn.html#SP2">&#167;2</a><br/>Backdrops - <a href="6-bck.html#SP1">&#167;1</a><br/>Regions - <a href="6-rgn.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP3">&#167;3</a><br/>Scenes - <a href="6-scn.html#SP2">&#167;2</a>, <a href="6-scn.html#SP6">&#167;6</a><br/>Actions - <a href="7-act.html#SP1">&#167;1</a><br/>Parsing - <a href="8-prs.html#SP2">&#167;2</a><br/>Figures - <a href="9-fgr.html#SP1">&#167;1</a><br/>Sound Effects - <a href="9-se.html#SP1">&#167;1</a><br/>External Files - <a href="9-ef.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">); </span><span class="comment-syntax"> Thus forcing this to exist...</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">icd</span><span class="plain-syntax">.</span><span class="element-syntax">instance_package</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -72,7 +72,7 @@ function togglePopup(material_id) {
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Miscellany</a></li><li><b>Runtime Support for Tables</b></li></ul></div>
<p class="purpose">To compile run-time data structures holding tables.</p>
<ul class="toc"><li><a href="5-rsft.html#SP1">&#167;1. Columns</a></li><li><a href="5-rsft.html#SP3">&#167;3. Tables</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="5-rsft.html#SP1">&#167;1. Columns</a></li><li><a href="5-rsft.html#SP3">&#167;3. Tables</a></li><li><a href="5-rsft.html#SP7">&#167;7. Synoptic resources</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Columns. </b>The run-time code uses a range of unique ID numbers to represent table columns;
these can't simply be addresses of the data because two uses of columns called
@ -124,20 +124,6 @@ kind as a strong kind ID.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTTables::column_introspection_routine</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">RTTables::column_introspection_routine</span></span>:<br/><a href="5-rsft.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">TC_KOV_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">SYNOPTIC_IANN</span><span class="plain-syntax">, </span><span class="identifier-syntax">TC_KOV_SYNID</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tcv_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_other_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"tc"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">unk_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTables::create_with_unique_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">tcv_s</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">owning_table</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"unk"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">unk_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::Constructors::UNKNOWN_iname</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::equate</span><span class="plain-syntax">(</span><span class="identifier-syntax">unk_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">unk_iname</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP6" class="function-link"><span class="function-syntax">EmitCode::comment</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"This function is consolidated"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Functions::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</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">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<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">table_column_usage_compilation_data</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">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">super_package</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">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tcu_package</span><span class="plain-syntax">;</span>
@ -152,14 +138,14 @@ kind as a strong kind ID.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">tcucd</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="function-syntax">RTTables::tcu_package</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RTTables::tcu_package</span></span>:<br/><a href="5-rsft.html#SP4_1_1_1_1_3">&#167;4.1.1.1.1.3</a>, <a href="5-rsft.html#SP4_2">&#167;4.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">table_column_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tcu</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">RTTables::tcu_package</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">RTTables::tcu_package</span></span>:<br/><a href="5-rsft.html#SP4_1_1_1_1_3">&#167;4.1.1.1.1.3</a>, <a href="5-rsft.html#SP4_2">&#167;4.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">table_column_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tcu</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">tcu</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">tcu_package</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">tcu</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">tcu_package</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP21" class="function-link"><span class="function-syntax">Hierarchy::package_within</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_COLUMN_USAGES_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">tcu</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">super_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">tcu</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="identifier-syntax">tcu_package</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTTables::tcu_iname</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">RTTables::tcu_iname</span></span>:<br/><a href="5-rsft.html#SP4_1_1_1">&#167;4.1.1.1</a>, <a href="5-rsft.html#SP4_1_1_1_1">&#167;4.1.1.1.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">table_column_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tcu</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTTables::tcu_iname</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RTTables::tcu_iname</span></span>:<br/><a href="5-rsft.html#SP4_1_1_1">&#167;4.1.1.1</a>, <a href="5-rsft.html#SP4_1_1_1_1">&#167;4.1.1.1.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">table_column_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tcu</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">tcu</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">tcu_iname</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">tcu</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">tcu_iname</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">COLUMN_DATA_HL</span><span class="plain-syntax">, </span><a href="5-rsft.html#SP2" class="function-link"><span class="function-syntax">RTTables::tcu_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tcu</span><span class="plain-syntax">));</span>
@ -187,7 +173,7 @@ kind as a strong kind ID.
<span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">name_for_metadata</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">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTTables::identifier</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">RTTables::identifier</span></span>:<br/><a href="5-rsft.html#SP1">&#167;1</a>, <a href="5-rsft.html#SP4_1_1_1">&#167;4.1.1.1</a><br/>The Score - <a href="6-ts.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTTables::identifier</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">RTTables::identifier</span></span>:<br/><a href="5-rsft.html#SP1">&#167;1</a>, <a href="5-rsft.html#SP4_1_1_1">&#167;4.1.1.1</a><br/>The Score - <a href="6-ts.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">table_identifier</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">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">table_identifier</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_DATA_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">table_package</span><span class="plain-syntax">);</span>
@ -201,8 +187,6 @@ kind as a strong kind ID.
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTTables::compile</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-rsft.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Compile the data structures for entry storage</span><span class="named-paragraph-number">4.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-rsft.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">Compile the blanks bitmap table</span><span class="named-paragraph-number">4.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-rsft.html#SP4_3" class="named-paragraph-link"><span class="named-paragraph">Compile the Table of Tables</span><span class="named-paragraph-number">4.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="5-rsft.html#SP2" class="function-link"><span class="function-syntax">RTTables::column_introspection_routine</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4_1" class="paragraph-anchor"></a><b>&#167;4.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the data structures for entry storage</span><span class="named-paragraph-number">4.1</span></span><span class="comment-syntax"> =</span>
@ -363,15 +347,12 @@ the values given there.
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bits_iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">identity_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">COLUMN_IDENTITY_HL</span><span class="plain-syntax">, </span><a href="5-rsft.html#SP2" class="function-link"><span class="function-syntax">RTTables::tcu_package</span></a><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">columns</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">])));</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP11" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">identity_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-rsft.html#SP1" class="function-link"><span class="function-syntax">RTTables::column_id</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tc</span><span class="plain-syntax">));</span>
<span class="comment-syntax">FIXME</span>
<span class="comment-syntax"> EmitArrays::numeric_entry((inter_ti) (RTTables::column_id(tc) + bits));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bits</span><span class="plain-syntax"> &amp; </span><span class="constant-syntax">TB_COLUMN_NOBLANKBITS</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">bits</span><span class="plain-syntax"> &amp; </span><span class="constant-syntax">TB_COLUMN_NOBLANKBITS</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::null_entry</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">blanks_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">COLUMN_BLANKS_HL</span><span class="plain-syntax">, </span><a href="5-rsft.html#SP2" class="function-link"><span class="function-syntax">RTTables::tcu_package</span></a><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">columns</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">])));</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">blanks_iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">blanks_array_hwm</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">blanks_iname</span><span class="plain-syntax">);</span>
<span class="comment-syntax"> EmitArrays::numeric_entry((inter_ti) blanks_array_hwm);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">words_used</span><span class="plain-syntax"> += </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
</pre>
@ -442,12 +423,6 @@ case.)
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">TB_BLANKS_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">SYNOPTIC_IANN</span><span class="plain-syntax">, </span><span class="identifier-syntax">TB_BLANKS_SYNID</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="2-ea.html#SP2" class="function-link"><span class="function-syntax">EmitArrays::begin_byte</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP6" class="function-link"><span class="function-syntax">EmitArrays::end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</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">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">table</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">amendment_of</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
@ -515,26 +490,6 @@ case.)
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-rsft.html#SP4_1">&#167;4.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP4_3" class="paragraph-anchor"></a><b>&#167;4.3. </b>We need a default value for the "table" kind, but it's not obvious what
it should be. So <span class="extract"><span class="extract-syntax">TheEmptyTable</span></span> is a stunted form of the above data
structure: a table with no columns and no rows, which would otherwise be
against the rules. (The Template file "Tables.i6t" defines it.)
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the Table of Tables</span><span class="named-paragraph-number">4.3</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">TABLEOFTABLES_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">empty_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTables::create_with_unique_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname_s</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">owning_table</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"empty"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">empty_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">THEEMPTYTABLE_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::equate</span><span class="plain-syntax">(</span><span class="identifier-syntax">empty_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">empty_iname</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="2-ea.html#SP2" class="function-link"><span class="function-syntax">EmitArrays::begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">SYNOPTIC_IANN</span><span class="plain-syntax">, </span><span class="identifier-syntax">TABLEOFTABLES_SYNID</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP6" class="function-link"><span class="function-syntax">EmitArrays::end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-rsft.html#SP4">&#167;4</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. </b>The following allows tables to be said: it's a routine which switches on
table values and prints the (title-cased) name of the one which matches.
</p>
@ -558,13 +513,64 @@ should return <span class="extract"><span class="extract-syntax">FALSE</span></s
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTTables::requires_blanks_bitmap</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">RTTables::requires_blanks_bitmap</span></span>:<br/><a href="5-rsft.html#SP4_1_1_1_1_3">&#167;4.1.1.1.1.3</a>, <a href="5-rsft.html#SP4_2">&#167;4.2</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTTables::requires_blanks_bitmap</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">RTTables::requires_blanks_bitmap</span></span>:<br/><a href="5-rsft.html#SP4_1_1_1_1_3">&#167;4.1.1.1.1.3</a>, <a href="5-rsft.html#SP4_2">&#167;4.2</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="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">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_an_enumeration</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. Synoptic resources. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTTables::compile_synoptic_resources</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-rsft.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Provide placeholder for the TABLEOFTABLES array</span><span class="named-paragraph-number">7.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-rsft.html#SP7_2" class="named-paragraph-link"><span class="named-paragraph">Provide placeholder for the TB_BLANKS array</span><span class="named-paragraph-number">7.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-rsft.html#SP7_3" class="named-paragraph-link"><span class="named-paragraph">Provide placeholder for the TC_KOV function</span><span class="named-paragraph-number">7.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7_1" class="paragraph-anchor"></a><b>&#167;7.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Provide placeholder for the TABLEOFTABLES array</span><span class="named-paragraph-number">7.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">TABLEOFTABLES_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">empty_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTables::create_with_unique_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname_s</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">owning_table</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"empty"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">empty_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">THEEMPTYTABLE_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::equate</span><span class="plain-syntax">(</span><span class="identifier-syntax">empty_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">empty_iname</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="2-ea.html#SP2" class="function-link"><span class="function-syntax">EmitArrays::begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">SYNOPTIC_IANN</span><span class="plain-syntax">, </span><span class="identifier-syntax">TABLEOFTABLES_SYNID</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP6" class="function-link"><span class="function-syntax">EmitArrays::end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</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">iname</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-rsft.html#SP7">&#167;7</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP7_2" class="paragraph-anchor"></a><b>&#167;7.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Provide placeholder for the TB_BLANKS array</span><span class="named-paragraph-number">7.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">TB_BLANKS_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">SYNOPTIC_IANN</span><span class="plain-syntax">, </span><span class="identifier-syntax">TB_BLANKS_SYNID</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="2-ea.html#SP2" class="function-link"><span class="function-syntax">EmitArrays::begin_byte</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP6" class="function-link"><span class="function-syntax">EmitArrays::end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</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">iname</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-rsft.html#SP7">&#167;7</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP7_3" class="paragraph-anchor"></a><b>&#167;7.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Provide placeholder for the TC_KOV function</span><span class="named-paragraph-number">7.3</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">TC_KOV_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">SYNOPTIC_IANN</span><span class="plain-syntax">, </span><span class="identifier-syntax">TC_KOV_SYNID</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tcv_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_other_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"tc"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">unk_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTables::create_with_unique_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">tcv_s</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">owning_table</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"unk"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">unk_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::Constructors::UNKNOWN_iname</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::equate</span><span class="plain-syntax">(</span><span class="identifier-syntax">unk_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">unk_iname</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP6" class="function-link"><span class="function-syntax">EmitCode::comment</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"This function is consolidated"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Functions::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</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">iname</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-rsft.html#SP7">&#167;7</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="5-rart.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-fc.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-rls.html">rls</a></li><li class="progresssection"><a href="5-act.html">act</a></li><li class="progresssection"><a href="5-rsfk.html">rsfk</a></li><li class="progresssection"><a href="5-lpart.html">lpart</a></li><li class="progresssection"><a href="5-es.html">es</a></li><li class="progresssection"><a href="5-tv.html">tv</a></li><li class="progresssection"><a href="5-vrb.html">vrb</a></li><li class="progresssection"><a href="5-prp.html">prp</a></li><li class="progresssection"><a href="5-msr.html">msr</a></li><li class="progresssection"><a href="5-epv.html">epv</a></li><li class="progresssection"><a href="5-ins.html">ins</a></li><li class="progresssection"><a href="5-ic.html">ic</a></li><li class="progresssection"><a href="5-adj.html">adj</a></li><li class="progresssection"><a href="5-ni.html">ni</a></li><li class="progresssection"><a href="5-vart.html">vart</a></li><li class="progresssection"><a href="5-rart.html">rart</a></li><li class="progresscurrent">rsft</li><li class="progresssection"><a href="5-chr.html">chr</a></li><li class="progresschapter"><a href="6-nmn.html">6</a></li><li class="progresschapter"><a href="7-act.html">7</a></li><li class="progresschapter"><a href="8-prs.html">8</a></li><li class="progresschapter"><a href="9-fgr.html">9</a></li><li class="progresschapter"><a href="10-sc.html">10</a></li><li class="progressnext"><a href="5-chr.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->

View file

@ -751,10 +751,8 @@ actually running:
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">SYNOPTIC_IANN</span><span class="plain-syntax">, </span><span class="identifier-syntax">DETECTSCENECHANGE_SYNID</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LocalVariables::new_internal_commented_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"chs"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"count of changes made"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ch_s</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LocalVariables::new_internal_commented_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"ch"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"flag: change made"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">myself_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTables::create_with_unique_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">ch_s</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">owning_table</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"myself"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InterSymbolsTables::equate</span><span class="plain-syntax">(</span><span class="identifier-syntax">myself_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">));</span>
<span class="comment-syntax"> inter_symbol *ch_s =</span>
<span class="comment-syntax"> LocalVariables::new_internal_commented_as_symbol(I"ch", I"flag: change made");</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP6" class="function-link"><span class="function-syntax">EmitCode::comment</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"This function is consolidated"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Functions::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>

View file

@ -80,10 +80,6 @@
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTExternalFiles::arrays</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">NO_EXTERNAL_FILES_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="identifier-syntax">files_data</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">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">files_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">exf</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">exf</span><span class="plain-syntax">, </span><span class="identifier-syntax">files_data</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">exf</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">file_ownership</span><span class="plain-syntax"> == </span><span class="identifier-syntax">OWNED_BY_SPECIFIC_PROJECT</span><span class="plain-syntax">) {</span>
@ -118,11 +114,20 @@
<span class="string-syntax"> EmitArrays::end(save);</span>
<span class="string-syntax"> }</span>
<span class="string-syntax"> LOOP_OVER(exf, files_data) {</span>
<span class="string-syntax"> inter_name *md_iname = Hierarchy::make_iname_in(INSTANCE_FILE_VALUE_METADATA_HL,</span>
<span class="string-syntax"> RTInstances::package(exf-&gt;as_instance));</span>
<span class="string-syntax"> Emit::iname_constant(md_iname, K_value, exf-&gt;compilation_data.exf_iname);</span>
<span class="string-syntax"> }</span>
<span class="string-syntax"> inter_name *iname = Hierarchy::find(NO_EXTERNAL_FILES_HL);</span>
<span class="string-syntax"> Produce::annotate_i(iname, SYNOPTIC_IANN, NO_EXTERNAL_FILES_SYNID);</span>
<span class="string-syntax"> Emit::numeric_constant(iname, (inter_ti) 0);</span>
<span class="string-syntax"> Hierarchy::make_available(iname);</span>
<span class="string-syntax"> iname = Hierarchy::find(TABLEOFEXTERNALFILES_HL);</span>
<span class="string-syntax"> Produce::annotate_i(iname, SYNOPTIC_IANN, TABLEOFEXTERNALFILES_SYNID);</span>
<span class="string-syntax"> packaging_state save = EmitArrays::begin(iname, K_value);</span>
<span class="string-syntax"> EmitArrays::numeric_entry(0);</span>
<span class="string-syntax"> LOOP_OVER(exf, files_data) EmitArrays::iname_entry(exf-&gt;compilation_data.exf_iname);</span>
<span class="string-syntax"> EmitArrays::numeric_entry(0);</span>
<span class="string-syntax"> EmitArrays::end(save);</span>
<span class="string-syntax"> Hierarchy::make_available(iname);</span>
<span class="string-syntax">}</span>

View file

@ -66,14 +66,19 @@
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTFigures::compile_ResourceIDsOfFigures_array</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">RESOURCEIDSOFFIGURES_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="2-ea.html#SP2" class="function-link"><span class="function-syntax">EmitArrays::begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTFigures::compile_metadata</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">figures_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bf</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">bf</span><span class="plain-syntax">, </span><span class="identifier-syntax">figures_data</span><span class="plain-syntax">) </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">bf</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">figure_number</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">bf</span><span class="plain-syntax">, </span><span class="identifier-syntax">figures_data</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">md_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_FIGURE_ID_METADATA_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="5-ins.html#SP4" class="function-link"><span class="function-syntax">RTInstances::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bf</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">md_iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">bf</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">figure_number</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">RESOURCEIDSOFFIGURES_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">SYNOPTIC_IANN</span><span class="plain-syntax">, </span><span class="identifier-syntax">RESOURCEIDSOFFIGURES_SYNID</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="2-ea.html#SP2" class="function-link"><span class="function-syntax">EmitArrays::begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP6" class="function-link"><span class="function-syntax">EmitArrays::end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</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">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">

View file

@ -66,14 +66,18 @@
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTSounds::compile_ResourceIDsOfSounds_array</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">RESOURCEIDSOFSOUNDS_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="2-ea.html#SP2" class="function-link"><span class="function-syntax">EmitArrays::begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTSounds::compile_metadata</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">sounds_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bs</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">bs</span><span class="plain-syntax">, </span><span class="identifier-syntax">sounds_data</span><span class="plain-syntax">) </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">bs</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">sound_number</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">(0);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">bs</span><span class="plain-syntax">, </span><span class="identifier-syntax">sounds_data</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">md_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_SOUND_ID_METADATA_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="5-ins.html#SP4" class="function-link"><span class="function-syntax">RTInstances::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bs</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">md_iname</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">bs</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">sound_number</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">RESOURCEIDSOFSOUNDS_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">SYNOPTIC_IANN</span><span class="plain-syntax">, </span><span class="identifier-syntax">RESOURCEIDSOFSOUNDS_SYNID</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="2-ea.html#SP2" class="function-link"><span class="function-syntax">EmitArrays::begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ea.html#SP6" class="function-link"><span class="function-syntax">EmitArrays::end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</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">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">

View file

@ -1,10 +1,10 @@
Total memory consumption was 298905K = 292 MB
Total memory consumption was 298912K = 292 MB
63.9% was used for 1469154 objects, in 316296 frames in 239 x 800K = 191200K = 186 MB:
63.9% was used for 1469174 objects, in 316316 frames in 239 x 800K = 191200K = 186 MB:
9.4% inter_tree_node_array 40 x 8192 = 327680 objects, 28837120 bytes
5.9% text_stream_array 3258 x 100 = 325800 objects, 18349056 bytes
5.3% linked_list 29092 objects, 16291520 bytes
5.3% linked_list 29093 objects, 16292080 bytes
3.3% parse_node 129367 objects, 10349360 bytes
2.7% inter_symbol_array 85 x 1024 = 87040 objects, 8358560 bytes
2.4% verb_conjugation 160 objects, 7425280 bytes
@ -18,18 +18,18 @@ Total memory consumption was 298905K = 292 MB
0.4% match_trie_array 10 x 1000 = 10000 objects, 1360320 bytes
0.4% i6_schema_array 21 x 100 = 2100 objects, 1260672 bytes
0.3% id_body 940 objects, 1075360 bytes
0.3% inter_package 14899 objects, 1072728 bytes
0.3% inter_package 14900 objects, 1072800 bytes
0.3% adjective_meaning 202 objects, 1000304 bytes
0.3% excerpt_meaning 3098 objects, 966576 bytes
0.3% inter_name_generator_array 24 x 1000 = 24000 objects, 960768 bytes
0.3% inter_symbols_table 14899 objects, 953536 bytes
0.3% dictionary 19542 objects, 938016 bytes
0.3% inter_symbols_table 14900 objects, 953600 bytes
0.3% dictionary 19544 objects, 938112 bytes
0.2% production 3885 objects, 901320 bytes
0.2% dict_entry_array 273 x 100 = 27300 objects, 882336 bytes
0.2% ptoken 8390 objects, 872560 bytes
0.2% grammatical_usage 3610 objects, 866400 bytes
0.2% individual_form 2560 objects, 860160 bytes
0.2% package_request 9540 objects, 839520 bytes
0.2% package_request 9541 objects, 839608 bytes
0.2% inter_schema_node 8663 objects, 831648 bytes
0.2% unary_predicate_array 16 x 1000 = 16000 objects, 640512 bytes
0.1% local_variable_array 46 x 100 = 4600 objects, 443072 bytes
@ -47,14 +47,14 @@ Total memory consumption was 298905K = 292 MB
---- nonterminal 759 objects, 139656 bytes
---- compilation_subtask 1664 objects, 133120 bytes
---- nascent_array 1969 objects, 126016 bytes
---- hierarchy_location 812 objects, 116928 bytes
---- hierarchy_location 818 objects, 117792 bytes
---- documentation_ref 1274 objects, 112112 bytes
---- inference 1703 objects, 108992 bytes
---- imperative_defn 1376 objects, 99072 bytes
---- anl_entry_array 2 x 1000 = 2000 objects, 96064 bytes
---- noun_usage 2401 objects, 96040 bytes
---- preposition 273 objects, 87360 bytes
---- inter_tree 6 objects, 82464 bytes
---- inter_tree 6 objects, 82752 bytes
---- lexical_cluster 2516 objects, 80512 bytes
---- pcalc_term_array 2 x 1000 = 2000 objects, 80064 bytes
---- kind_variable_declaration 1652 objects, 79296 bytes
@ -110,10 +110,10 @@ Total memory consumption was 298905K = 292 MB
---- booking_list 407 objects, 13024 bytes
---- adjective_iname_holder 320 objects, 12800 bytes
---- pathname 292 objects, 11680 bytes
---- stopwatch_timer 140 objects, 11200 bytes
---- stopwatch_timer 141 objects, 11280 bytes
---- filename 208 objects, 8320 bytes
---- equation_node 68 objects, 7616 bytes
---- uniqueness_count 306 objects, 7344 bytes
---- uniqueness_count 308 objects, 7392 bytes
---- understanding_item_array 3 x 100 = 300 objects, 7296 bytes
---- shared_variable_array 1 x 100 objects, 7232 bytes
---- determiner 22 objects, 7216 bytes
@ -141,7 +141,7 @@ Total memory consumption was 298905K = 292 MB
---- inform_extension 19 objects, 3040 bytes
---- either_or_property_data 62 objects, 2976 bytes
---- property_of_value_storage 93 objects, 2976 bytes
---- submodule_request 73 objects, 2920 bytes
---- submodule_request 74 objects, 2960 bytes
---- part_of_inference_data 79 objects, 2528 bytes
---- parentage_inference_data 79 objects, 2528 bytes
---- kind_constructor_casting_rule_array 1 x 100 objects, 2432 bytes
@ -174,13 +174,13 @@ Total memory consumption was 298905K = 292 MB
---- runtime_kind_structure 13 objects, 832 bytes
---- phrase_option_array 1 x 100 objects, 824 bytes
---- target_vm 6 objects, 816 bytes
---- submodule_identity 25 objects, 800 bytes
---- generated_segment 25 objects, 800 bytes
---- inter_data_type 14 objects, 784 bytes
---- submodule_identity 24 objects, 768 bytes
---- inter_tree_location_list 19 objects, 760 bytes
---- inform_language 6 objects, 672 bytes
---- inter_warehouse_room 10 objects, 640 bytes
---- relation_guard 5 objects, 640 bytes
---- inter_tree_location_list 16 objects, 640 bytes
---- I6T_intervention 8 objects, 640 bytes
---- named_rulebook_outcome 15 objects, 600 bytes
---- inbuild_search_result 15 objects, 600 bytes
@ -228,9 +228,9 @@ Total memory consumption was 298905K = 292 MB
---- article 2 objects, 80 bytes
---- group_together_function 2 objects, 80 bytes
---- build_methodology 1 object, 56 bytes
---- figures_data 1 object, 56 bytes
---- inter_warehouse 1 object, 56 bytes
---- HTML_file_state 1 object, 48 bytes
---- figures_data 1 object, 48 bytes
---- star_invention 1 object, 48 bytes
---- loop_over_scope 1 object, 40 bytes
---- by_routine_bp_data 1 object, 40 bytes
@ -239,22 +239,22 @@ Total memory consumption was 298905K = 292 MB
36.0% was used for memory not allocated for objects:
16.6% text stream storage 51038332 bytes in 336609 claims
3.5% dictionary storage 10921984 bytes in 19542 claims
---- sorting 968 bytes in 3 claims
16.6% text stream storage 51040320 bytes in 336633 claims
3.5% dictionary storage 10923008 bytes in 19544 claims
---- sorting 976 bytes in 3 claims
2.3% source text 7200000 bytes in 3 claims
3.5% source text details 10800000 bytes in 2 claims
---- linguistic stock array 81920 bytes in 2 claims
---- small word set array 105600 bytes in 22 claims
0.8% inter symbols storage 2568752 bytes in 15723 claims
0.8% inter symbols storage 2568880 bytes in 15724 claims
5.4% inter bytecode storage 16802776 bytes in 14 claims
2.8% inter links storage 8750208 bytes in 246 claims
---- inter tree location list storage 122112 bytes in 18 claims
---- inter tree location list storage 126208 bytes in 19 claims
0.5% instance-of-kind counting 1695204 bytes in 1 claim
---- compilation workspace for objects 21856 bytes in 25 claims
---- lists for type-checking invocations 16000 bytes in 1 claim
---- emitter array storage 155664 bytes in 2042 claims
---- emitter array storage 155472 bytes in 2039 claims
---- code generation workspace for objects 9192 bytes in 9 claims
20.6% was overhead - 63283368 bytes = 61800K = 60 MB
20.6% was overhead - 63281008 bytes = 61797K = 60 MB

View file

@ -1,15 +1,15 @@
100.0% in inform7 run
53.3% in compilation to Inter
32.2% in //Sequence::undertake_queued_tasks//
5.5% in //InferenceSubjects::emit_all//
3.3% in //MajorNodes::pre_pass//
3.0% in //MajorNodes::pass_1//
53.9% in compilation to Inter
32.8% in //Sequence::undertake_queued_tasks//
5.4% in //InferenceSubjects::emit_all//
3.2% in //MajorNodes::pre_pass//
3.1% in //MajorNodes::pass_1//
1.5% in //ImperativeDefinitions::assess_all//
1.5% in //ImperativeDefinitions::compile_first_block//
0.9% in //RTVerbs::ConjugateVerb//
0.6% in //RTRules::compile_rulebooks//
0.3% in //MajorNodes::pass_2//
0.3% in //World::stage_V//
0.4% in //MajorNodes::pass_2//
0.4% in //World::stage_V//
0.1% in //RTActions::compile_functions//
0.1% in //RTCommandGrammars::compile_all//
0.1% in //RTKinds::compile_data_type_support_routines//
@ -18,21 +18,21 @@
0.1% in //RTTables::compile//
0.1% in //Task::make_built_in_kind_constructors//
0.1% in //World::stages_II_and_III//
2.6% not specifically accounted for
44.7% in running Inter pipeline
14.2% in inter step 10/14: consolidate-text
10.7% in step preparation
2.4% not specifically accounted for
44.0% in running Inter pipeline
13.9% in inter step 10/14: consolidate-text
10.4% in step preparation
8.5% in inter step 2/14: link
6.7% in inter step 14/14: generate inform6 -> auto.inf
0.6% in inter step 9/14: make-identifiers-unique
0.3% in inter step 11/14: reconcile-verbs
0.3% in inter step 13/14: eliminate-redundant-operations
0.3% in inter step 6/14: assimilate
0.1% in inter step 12/14: eliminate-redundant-labels
0.1% in inter step 4/14: parse-linked-matter
0.1% in inter step 5/14: resolve-conditional-compilation
0.1% in inter step 6/14: assimilate
0.1% in inter step 7/14: resolve-external-symbols
0.1% in inter step 8/14: inspect-plugs
2.1% not specifically accounted for
2.2% not specifically accounted for
1.7% in supervisor
0.2% not specifically accounted for
0.4% not specifically accounted for

View file

@ -230,6 +230,7 @@ so on. Those absolute basics are made here.
BENCH(RTRelations::compile_defined_relations)
BENCH(RTRelations::compile_synoptic_resources)
BENCH(Chronology::compile_synoptic_resources)
BENCH(RTTables::compile_synoptic_resources)
BENCH(RTMeasurements::compile_test_functions)
BENCH(Sequence::undertake_queued_tasks)

View file

@ -230,6 +230,7 @@ typedef struct files_data {
int file_ownership; /* one of the |OWNED_BY_*| values above */
struct text_stream *IFID_of_owner; /* if we know that */
struct external_file_compilation_data compilation_data;
struct instance *as_instance;
CLASS_DEFINITION
} files_data;
@ -253,6 +254,7 @@ instance *ExternalFiles::files_create(wording W, int binary, int ownership,
fd->file_ownership = ownership;
fd->IFID_of_owner = Str::duplicate(ifid_of_file);
fd->compilation_data = RTExternalFiles::new_data(W);
fd->as_instance = I;
return I;
}

View file

@ -15,7 +15,7 @@ void Figures::start(void) {
int Figures::production_line(int stage, int debugging, stopwatch_timer *sequence_timer) {
if (stage == INTER1_CSEQ) {
BENCH(RTFigures::compile_ResourceIDsOfFigures_array);
BENCH(RTFigures::compile_metadata);
}
return FALSE;
}
@ -147,6 +147,7 @@ typedef struct figures_data {
struct filename *filename_of_image_file;
int figure_number; /* resource number of this picture inside Blorb */
int alt_description; /* word number of double-quoted description */
struct instance *as_instance;
CLASS_DEFINITION
} figures_data;
@ -169,6 +170,7 @@ instance *Figures::figures_create(wording W, int id, filename *figure_file, int
figd->name = W;
figd->figure_number = id;
figd->alt_description = alt;
figd->as_instance = I;
if (id == 1) F_cover_art = figd;
return I;
}

View file

@ -15,7 +15,7 @@ void Sounds::start(void) {
int Sounds::production_line(int stage, int debugging, stopwatch_timer *sequence_timer) {
if (stage == INTER1_CSEQ) {
BENCH(RTSounds::compile_ResourceIDsOfSounds_array);
BENCH(RTSounds::compile_metadata);
}
return FALSE;
}
@ -139,6 +139,7 @@ typedef struct sounds_data {
struct filename *filename_of_sound_file; /* relative to the Resources folder */
int sound_number; /* resource number of this picture inside Blorb */
int alt_description; /* word number of double-quoted description */
struct instance *as_instance;
CLASS_DEFINITION
} sounds_data;
@ -159,6 +160,7 @@ instance *Sounds::sounds_create(wording W, int id, filename *sound_file, int alt
sd->name = W;
sd->sound_number = id;
sd->alt_description = alt;
sd->as_instance = I;
return I;
}

View file

@ -186,6 +186,7 @@ void Hierarchy::establish(void) {
@<Establish instances@>;
@<Establish int-fiction@>;
@<Establish kinds@>;
@<Establish multimedia@>;
@<Establish phrases@>;
@<Establish properties@>;
@<Establish relations@>;
@ -708,6 +709,12 @@ void Hierarchy::establish(void) {
@e INSTANCE_VALUE_METADATA_HL
@e INSTANCE_KIND_METADATA_HL
@e INSTANCE_IS_SCENE_METADATA_HL
@e INSTANCE_IS_EXF_METADATA_HL
@e INSTANCE_FILE_VALUE_METADATA_HL
@e INSTANCE_IS_FIGURE_METADATA_HL
@e INSTANCE_FIGURE_ID_METADATA_HL
@e INSTANCE_IS_SOUND_METADATA_HL
@e INSTANCE_SOUND_ID_METADATA_HL
@e INSTANCE_SSF_METADATA_HL
@e INSTANCE_SCF_METADATA_HL
@e INSTANCE_HL
@ -733,6 +740,12 @@ void Hierarchy::establish(void) {
H_C_U(INSTANCE_IS_SCENE_METADATA_HL, I"^is_scene")
H_C_U(INSTANCE_SSF_METADATA_HL, I"^scene_status_fn")
H_C_U(INSTANCE_SCF_METADATA_HL, I"^scene_change_fn")
H_C_U(INSTANCE_IS_EXF_METADATA_HL, I"^is_file")
H_C_U(INSTANCE_FILE_VALUE_METADATA_HL, I"^file_value")
H_C_U(INSTANCE_IS_FIGURE_METADATA_HL, I"^is_figure")
H_C_U(INSTANCE_FIGURE_ID_METADATA_HL, I"^resource_id");
H_C_U(INSTANCE_IS_SOUND_METADATA_HL, I"^is_sound")
H_C_U(INSTANCE_SOUND_ID_METADATA_HL, I"^resource_id");
H_C_U(INSTANCE_HL, I"I")
H_F_U(SCENE_STATUS_FN_HL, I"scene_status_fn")
H_F_U(SCENE_CHANGE_FN_HL, I"scene_change_fn")
@ -899,6 +912,23 @@ void Hierarchy::establish(void) {
H_F_T(SHOWMEDETAILS_HL, I"showmedetails_fn", I"ShowMeDetails")
H_END
@h Multimedia.
@e RESOURCEIDSOFFIGURES_HL
@e RESOURCEIDSOFSOUNDS_HL
@e NO_EXTERNAL_FILES_HL
@e TABLEOFEXTERNALFILES_HL
@<Establish multimedia@> =
submodule_identity *multimedia = Packaging::register_submodule(I"multimedia");
H_BEGIN(HierarchyLocations::synoptic_submodule(I, multimedia))
H_C_T(RESOURCEIDSOFFIGURES_HL, I"ResourceIDsOfFigures")
H_C_T(RESOURCEIDSOFSOUNDS_HL, I"ResourceIDsOfSounds")
H_C_T(NO_EXTERNAL_FILES_HL, I"NO_EXTERNAL_FILES")
H_C_T(TABLEOFEXTERNALFILES_HL, I"TableOfExternalFiles")
H_END
@h Phrases.
@e CLOSURES_HAP
@ -1226,6 +1256,7 @@ void Hierarchy::establish(void) {
H_END
H_BEGIN(HierarchyLocations::synoptic_submodule(I, tables))
H_C_T(TABLEOFTABLES_HL, I"TableOfTables")
H_C_T(TB_BLANKS_HL, I"TB_Blanks")
H_END
@ -1324,8 +1355,6 @@ void Hierarchy::establish(void) {
@e COMMANDPROMPTTEXT_HL
@e DECIMAL_TOKEN_INNER_HL
@e NO_USE_OPTIONS_HL
@e RESOURCEIDSOFFIGURES_HL
@e RESOURCEIDSOFSOUNDS_HL
@e TIME_TOKEN_INNER_HL
@e TRUTH_STATE_TOKEN_INNER_HL
@ -1335,8 +1364,6 @@ void Hierarchy::establish(void) {
@e PRINT_FIGURE_NAME_HL
@e PRINT_SOUND_NAME_HL
@e PRINT_EXTERNAL_FILE_NAME_HL
@e NO_EXTERNAL_FILES_HL
@e TABLEOFEXTERNALFILES_HL
@e PRINT_SCENE_HL
@<The rest@> =
@ -1357,7 +1384,6 @@ void Hierarchy::establish(void) {
H_END
H_BEGIN(HierarchyLocations::this_exotic_package(K_TABLE_XPACKAGE))
H_C_T(TABLEOFTABLES_HL, I"TableOfTables")
H_F_T(PRINT_TABLE_HL, I"print_fn", I"PrintTableName")
H_END
@ -1366,12 +1392,10 @@ void Hierarchy::establish(void) {
H_END
H_BEGIN(HierarchyLocations::this_exotic_package(K_FIGURE_NAME_XPACKAGE))
H_C_T(RESOURCEIDSOFFIGURES_HL, I"ResourceIDsOfFigures")
H_F_T(PRINT_FIGURE_NAME_HL, I"print_fn", I"PrintFigureName")
H_END
H_BEGIN(HierarchyLocations::this_exotic_package(K_SOUND_NAME_XPACKAGE))
H_C_T(RESOURCEIDSOFSOUNDS_HL, I"ResourceIDsOfSounds")
H_F_T(PRINT_SOUND_NAME_HL, I"print_fn", I"PrintSoundName")
H_END
@ -1386,8 +1410,6 @@ void Hierarchy::establish(void) {
H_END
H_BEGIN(HierarchyLocations::this_exotic_package(K_EXTERNAL_FILE_XPACKAGE))
H_C_T(NO_EXTERNAL_FILES_HL, I"NO_EXTERNAL_FILES")
H_C_T(TABLEOFEXTERNALFILES_HL, I"TableOfExternalFiles")
H_F_T(PRINT_EXTERNAL_FILE_NAME_HL, I"print_fn", I"PrintExternalFileName")
H_END

View file

@ -35,6 +35,15 @@ void RTInstances::compile_metadata(void) {
if ((K_scene) && (Kinds::eq(K, K_scene)))
Hierarchy::apply_metadata_from_number(I->icd.instance_package,
INSTANCE_IS_SCENE_METADATA_HL, 1);
if ((K_sound_name) && (Kinds::eq(K, K_sound_name)))
Hierarchy::apply_metadata_from_number(I->icd.instance_package,
INSTANCE_IS_SOUND_METADATA_HL, 1);
if ((K_figure_name) && (Kinds::eq(K, K_figure_name)))
Hierarchy::apply_metadata_from_number(I->icd.instance_package,
INSTANCE_IS_FIGURE_METADATA_HL, 1);
if ((K_external_file) && (Kinds::eq(K, K_external_file)))
Hierarchy::apply_metadata_from_number(I->icd.instance_package,
INSTANCE_IS_EXF_METADATA_HL, 1);
}
}

View file

@ -50,20 +50,6 @@ void RTTables::compile_table_column_metadata(void) {
kind as a strong kind ID.
=
void RTTables::column_introspection_routine(void) {
inter_name *iname = Hierarchy::find(TC_KOV_HL);
Produce::annotate_i(iname, SYNOPTIC_IANN, TC_KOV_SYNID);
packaging_state save = Functions::begin(iname);
inter_symbol *tcv_s = LocalVariables::new_other_as_symbol(I"tc");
inter_symbol *unk_s = InterSymbolsTables::create_with_unique_name(tcv_s->owning_table, I"unk");
inter_name *unk_iname = Kinds::Constructors::UNKNOWN_iname();
InterSymbolsTables::equate(unk_s, InterNames::to_symbol(unk_iname));
EmitCode::comment(I"This function is consolidated");
Functions::end(save);
Hierarchy::make_available(iname);
}
typedef struct table_column_usage_compilation_data {
struct package_request *super_package;
struct package_request *tcu_package;
@ -125,8 +111,6 @@ inter_name *RTTables::identifier(table *t) {
void RTTables::compile(void) {
@<Compile the data structures for entry storage@>;
@<Compile the blanks bitmap table@>;
@<Compile the Table of Tables@>;
RTTables::column_introspection_routine();
}
@<Compile the data structures for entry storage@> =
@ -253,15 +237,12 @@ the values given there.
EmitArrays::iname_entry(bits_iname);
inter_name *identity_iname = Hierarchy::make_iname_in(COLUMN_IDENTITY_HL, RTTables::tcu_package(&(t->columns[j])));
Emit::iname_constant(identity_iname, K_value, RTTables::column_id(tc));
//FIXME
// EmitArrays::numeric_entry((inter_ti) (RTTables::column_id(tc) + bits));
if (bits & TB_COLUMN_NOBLANKBITS)
if (bits & TB_COLUMN_NOBLANKBITS) {
EmitArrays::null_entry();
else {
} else {
inter_name *blanks_iname = Hierarchy::make_iname_in(COLUMN_BLANKS_HL, RTTables::tcu_package(&(t->columns[j])));
Emit::numeric_constant(blanks_iname, (inter_ti) blanks_array_hwm);
EmitArrays::iname_entry(blanks_iname);
// EmitArrays::numeric_entry((inter_ti) blanks_array_hwm);
}
words_used += 2;
@ -317,12 +298,6 @@ case.)
else RTKinds::emit_default_value(K, EMPTY_WORDING, "table entry");
@<Compile the blanks bitmap table@> =
inter_name *iname = Hierarchy::find(TB_BLANKS_HL);
Produce::annotate_i(iname, SYNOPTIC_IANN, TB_BLANKS_SYNID);
packaging_state save = EmitArrays::begin_byte(iname, K_number);
EmitArrays::end(save);
Hierarchy::make_available(iname);
table *t;
LOOP_OVER(t, table)
if (t->amendment_of == FALSE) {
@ -373,21 +348,6 @@ case.)
Hierarchy::apply_metadata(t->compilation_data.table_package, TABLE_PNAME_METADATA_HL, S);
DISCARD_TEXT(S)
@ We need a default value for the "table" kind, but it's not obvious what
it should be. So |TheEmptyTable| is a stunted form of the above data
structure: a table with no columns and no rows, which would otherwise be
against the rules. (The Template file "Tables.i6t" defines it.)
@<Compile the Table of Tables@> =
inter_name *iname = Hierarchy::find(TABLEOFTABLES_HL);
inter_symbol *iname_s = InterNames::to_symbol(iname);
inter_symbol *empty_s = InterSymbolsTables::create_with_unique_name(iname_s->owning_table, I"empty");
inter_name *empty_iname = Hierarchy::find(THEEMPTYTABLE_HL);
InterSymbolsTables::equate(empty_s, InterNames::to_symbol(empty_iname));
packaging_state save = EmitArrays::begin(iname, K_value);
Produce::annotate_i(iname, SYNOPTIC_IANN, TABLEOFTABLES_SYNID);
EmitArrays::end(save);
@ The following allows tables to be said: it's a routine which switches on
table values and prints the (title-cased) name of the one which matches.
@ -415,3 +375,42 @@ int RTTables::requires_blanks_bitmap(kind *K) {
if (Kinds::Behaviour::is_an_enumeration(K)) return FALSE;
return TRUE;
}
@h Synoptic resources.
=
void RTTables::compile_synoptic_resources(void) {
@<Provide placeholder for the TABLEOFTABLES array@>;
@<Provide placeholder for the TB_BLANKS array@>;
@<Provide placeholder for the TC_KOV function@>;
}
@<Provide placeholder for the TABLEOFTABLES array@> =
inter_name *iname = Hierarchy::find(TABLEOFTABLES_HL);
inter_symbol *iname_s = InterNames::to_symbol(iname);
inter_symbol *empty_s = InterSymbolsTables::create_with_unique_name(iname_s->owning_table, I"empty");
inter_name *empty_iname = Hierarchy::find(THEEMPTYTABLE_HL);
InterSymbolsTables::equate(empty_s, InterNames::to_symbol(empty_iname));
packaging_state save = EmitArrays::begin(iname, K_value);
Produce::annotate_i(iname, SYNOPTIC_IANN, TABLEOFTABLES_SYNID);
EmitArrays::end(save);
Hierarchy::make_available(iname);
@<Provide placeholder for the TB_BLANKS array@> =
inter_name *iname = Hierarchy::find(TB_BLANKS_HL);
Produce::annotate_i(iname, SYNOPTIC_IANN, TB_BLANKS_SYNID);
packaging_state save = EmitArrays::begin_byte(iname, K_number);
EmitArrays::end(save);
Hierarchy::make_available(iname);
@<Provide placeholder for the TC_KOV function@> =
inter_name *iname = Hierarchy::find(TC_KOV_HL);
Produce::annotate_i(iname, SYNOPTIC_IANN, TC_KOV_SYNID);
packaging_state save = Functions::begin(iname);
inter_symbol *tcv_s = LocalVariables::new_other_as_symbol(I"tc");
inter_symbol *unk_s = InterSymbolsTables::create_with_unique_name(tcv_s->owning_table, I"unk");
inter_name *unk_iname = Kinds::Constructors::UNKNOWN_iname();
InterSymbolsTables::equate(unk_s, InterNames::to_symbol(unk_iname));
EmitCode::comment(I"This function is consolidated");
Functions::end(save);
Hierarchy::make_available(iname);

View file

@ -608,10 +608,8 @@ void RTScenes::compile_synoptic_resources(void) {
Produce::annotate_i(iname, SYNOPTIC_IANN, DETECTSCENECHANGE_SYNID);
packaging_state save = Functions::begin(iname);
LocalVariables::new_internal_commented_as_symbol(I"chs", I"count of changes made");
inter_symbol *ch_s =
LocalVariables::new_internal_commented_as_symbol(I"ch", I"flag: change made");
inter_symbol *myself_s = InterSymbolsTables::create_with_unique_name(ch_s->owning_table, I"myself");
InterSymbolsTables::equate(myself_s, InterNames::to_symbol(iname));
// inter_symbol *ch_s =
// LocalVariables::new_internal_commented_as_symbol(I"ch", I"flag: change made");
EmitCode::comment(I"This function is consolidated");
Functions::end(save);

View file

@ -17,10 +17,6 @@ external_file_compilation_data RTExternalFiles::new_data(wording W) {
}
void RTExternalFiles::arrays(void) {
inter_name *iname = Hierarchy::find(NO_EXTERNAL_FILES_HL);
Emit::numeric_constant(iname, (inter_ti) (NUMBER_CREATED(files_data)));
Hierarchy::make_available(iname);
files_data *exf;
LOOP_OVER(exf, files_data) {
if (exf->file_ownership == OWNED_BY_SPECIFIC_PROJECT) {
@ -55,11 +51,20 @@ void RTExternalFiles::arrays(void) {
EmitArrays::end(save);
}
LOOP_OVER(exf, files_data) {
inter_name *md_iname = Hierarchy::make_iname_in(INSTANCE_FILE_VALUE_METADATA_HL,
RTInstances::package(exf->as_instance));
Emit::iname_constant(md_iname, K_value, exf->compilation_data.exf_iname);
}
inter_name *iname = Hierarchy::find(NO_EXTERNAL_FILES_HL);
Produce::annotate_i(iname, SYNOPTIC_IANN, NO_EXTERNAL_FILES_SYNID);
Emit::numeric_constant(iname, (inter_ti) 0);
Hierarchy::make_available(iname);
iname = Hierarchy::find(TABLEOFEXTERNALFILES_HL);
Produce::annotate_i(iname, SYNOPTIC_IANN, TABLEOFEXTERNALFILES_SYNID);
packaging_state save = EmitArrays::begin(iname, K_value);
EmitArrays::numeric_entry(0);
LOOP_OVER(exf, files_data) EmitArrays::iname_entry(exf->compilation_data.exf_iname);
EmitArrays::numeric_entry(0);
EmitArrays::end(save);
Hierarchy::make_available(iname);
}

View file

@ -3,12 +3,17 @@
@ Just one array will do us:
=
void RTFigures::compile_ResourceIDsOfFigures_array(void) {
inter_name *iname = Hierarchy::find(RESOURCEIDSOFFIGURES_HL);
packaging_state save = EmitArrays::begin(iname, K_number);
EmitArrays::numeric_entry(0);
void RTFigures::compile_metadata(void) {
figures_data *bf;
LOOP_OVER(bf, figures_data) EmitArrays::numeric_entry((inter_ti) bf->figure_number);
EmitArrays::numeric_entry(0);
LOOP_OVER(bf, figures_data) {
inter_name *md_iname = Hierarchy::make_iname_in(INSTANCE_FIGURE_ID_METADATA_HL,
RTInstances::package(bf->as_instance));
Emit::numeric_constant(md_iname, (inter_ti) bf->figure_number);
}
inter_name *iname = Hierarchy::find(RESOURCEIDSOFFIGURES_HL);
Produce::annotate_i(iname, SYNOPTIC_IANN, RESOURCEIDSOFFIGURES_SYNID);
packaging_state save = EmitArrays::begin(iname, K_value);
EmitArrays::end(save);
Hierarchy::make_available(iname);
}

View file

@ -3,12 +3,16 @@
@ Just one array will do us:
=
void RTSounds::compile_ResourceIDsOfSounds_array(void) {
inter_name *iname = Hierarchy::find(RESOURCEIDSOFSOUNDS_HL);
packaging_state save = EmitArrays::begin(iname, K_number);
EmitArrays::numeric_entry(0);
void RTSounds::compile_metadata(void) {
sounds_data *bs;
LOOP_OVER(bs, sounds_data) EmitArrays::numeric_entry((inter_ti) bs->sound_number);
EmitArrays::numeric_entry(0);
LOOP_OVER(bs, sounds_data) {
inter_name *md_iname = Hierarchy::make_iname_in(INSTANCE_SOUND_ID_METADATA_HL,
RTInstances::package(bs->as_instance));
Emit::numeric_constant(md_iname, (inter_ti) bs->sound_number);
}
inter_name *iname = Hierarchy::find(RESOURCEIDSOFSOUNDS_HL);
Produce::annotate_i(iname, SYNOPTIC_IANN, RESOURCEIDSOFSOUNDS_SYNID);
packaging_state save = EmitArrays::begin(iname, K_value);
EmitArrays::end(save);
Hierarchy::make_available(iname);
}

View file

@ -0,0 +1,91 @@
[SynopticMultimedia::] Multimedia.
To construct suitable functions and arrays for figures, sounds, and external files.
@ Before this runs, instances of these are scattered all over the Inter tree.
As this is called, //Synoptic Utilities// has already formed lists of |sound_nodes|
of instances having the kind |K_sound_name|, and so on.
=
void SynopticMultimedia::renumber(inter_tree *I) {
if (TreeLists::len(figure_nodes) > 0) {
TreeLists::sort(figure_nodes, Synoptic::module_order);
}
if (TreeLists::len(sound_nodes) > 0) {
TreeLists::sort(sound_nodes, Synoptic::module_order);
}
if (TreeLists::len(file_nodes) > 0) {
TreeLists::sort(file_nodes, Synoptic::module_order);
}
}
@ There are also resources to create in the |synoptic| module:
@e RESOURCEIDSOFFIGURES_SYNID
@e RESOURCEIDSOFSOUNDS_SYNID
@e NO_EXTERNAL_FILES_SYNID
@e TABLEOFEXTERNALFILES_SYNID
=
int SynopticMultimedia::redefine(inter_tree *I, inter_tree_node *P, inter_symbol *con_s, int synid) {
inter_package *pack = Inter::Packages::container(P);
inter_tree_node *Q = NULL;
inter_bookmark IBM = Inter::Bookmarks::at_end_of_this_package(pack);
switch (synid) {
case RESOURCEIDSOFFIGURES_SYNID:
Inter::Symbols::strike_definition(con_s);
Q = Synoptic::begin_array(con_s, &IBM);
@<Define the new RESOURCEIDSOFFIGURES array as Q@>;
Synoptic::end_array(Q, &IBM);
break;
case RESOURCEIDSOFSOUNDS_SYNID:
Inter::Symbols::strike_definition(con_s);
Q = Synoptic::begin_array(con_s, &IBM);
@<Define the new RESOURCEIDSOFSOUNDS array as Q@>;
Synoptic::end_array(Q, &IBM);
break;
case NO_EXTERNAL_FILES_SYNID:
Inter::Symbols::strike_definition(con_s);
@<Define NO_EXTERNAL_FILES@>;
break;
case TABLEOFEXTERNALFILES_SYNID:
Inter::Symbols::strike_definition(con_s);
Q = Synoptic::begin_array(con_s, &IBM);
@<Define the new TABLEOFEXTERNALFILES array as Q@>;
Synoptic::end_array(Q, &IBM);
break;
default: return FALSE;
}
return TRUE;
}
@<Define the new RESOURCEIDSOFFIGURES array as Q@> =
Synoptic::numeric_entry(Q, 0);
for (int i=0; i<TreeLists::len(figure_nodes); i++) {
inter_package *pack = Inter::Package::defined_by_frame(figure_nodes->list[i].node);
inter_ti id = Metadata::read_numeric(pack, I"^resource_id");
Synoptic::numeric_entry(Q, id);
}
Synoptic::numeric_entry(Q, 0);
@<Define the new RESOURCEIDSOFSOUNDS array as Q@> =
Synoptic::numeric_entry(Q, 0);
for (int i=0; i<TreeLists::len(sound_nodes); i++) {
inter_package *pack = Inter::Package::defined_by_frame(sound_nodes->list[i].node);
inter_ti id = Metadata::read_numeric(pack, I"^resource_id");
Synoptic::numeric_entry(Q, id);
}
Synoptic::numeric_entry(Q, 0);
@<Define NO_EXTERNAL_FILES@> =
Synoptic::def_numeric_constant(con_s, (inter_ti) TreeLists::len(file_nodes), &IBM);
@<Define the new TABLEOFEXTERNALFILES array as Q@> =
Synoptic::numeric_entry(Q, 0);
for (int i=0; i<TreeLists::len(file_nodes); i++) {
inter_package *pack = Inter::Package::defined_by_frame(file_nodes->list[i].node);
inter_symbol *vc_s = Metadata::read_symbol(pack, I"^file_value");
Synoptic::symbol_entry(Q, vc_s);
}
Synoptic::numeric_entry(Q, 0);

View file

@ -2,11 +2,10 @@
To renumber the scenes and construct suitable functions and arrays.
@ Before this runs, property packages are scattered all over the Inter tree.
We must allocate each one a unique ID.
@ Before this runs, instances of scenes are scattered all over the Inter tree.
As this is called, //Synoptic Utilities// has already formed a list |property_nodes|
of packages of type |_activity|.
As this is called, //Synoptic Utilities// has already formed a list |scene_nodes|
of instances having the kind |K_scene|.
=
void SynopticScenes::renumber(inter_tree *I, inter_tree_location_list *scene_nodes) {
@ -66,7 +65,6 @@ whether any change in status has or has not occurred.
@<Add a body of code to the DETECTSCENECHANGE function@> =
inter_symbol *chs_s = Synoptic::get_local(I, I"chs");
inter_symbol *myself_s = Synoptic::get_local(I, I"myself");
inter_symbol *Again_l = Produce::reserve_label(I, I".Again");
inter_symbol *CScene_l = Produce::reserve_label(I, I".CScene");
Produce::place_label(I, Again_l);
@ -109,14 +107,6 @@ whether any change in status has or has not occurred.
Produce::down(I);
Produce::ref_symbol(I, K_value, chs_s);
Produce::up(I);
// Produce::inv_call(I, myself_s);
// Produce::down(I);
// Produce::inv_primitive(I, PREINCREMENT_BIP);
// Produce::down(I);
// Produce::ref_symbol(I, K_value, chs_s);
// Produce::up(I);
// Produce::up(I);
// Produce::rtrue(I);
Produce::inv_primitive(I, JUMP_BIP);
Produce::down(I);
Produce::lab(I, Again_l);

View file

@ -28,6 +28,9 @@ inter_tree_location_list *past_tense_action_nodes = NULL;
inter_tree_location_list *past_tense_condition_nodes = NULL;
inter_tree_location_list *instance_nodes = NULL;
inter_tree_location_list *scene_nodes = NULL;
inter_tree_location_list *file_nodes = NULL;
inter_tree_location_list *figure_nodes = NULL;
inter_tree_location_list *sound_nodes = NULL;
int Synoptic::go(pipeline_step *step) {
text_nodes = TreeLists::new();
@ -46,6 +49,9 @@ int Synoptic::go(pipeline_step *step) {
past_tense_condition_nodes = TreeLists::new();
instance_nodes = TreeLists::new();
scene_nodes = TreeLists::new();
file_nodes = TreeLists::new();
figure_nodes = TreeLists::new();
sound_nodes = TreeLists::new();
InterTree::traverse(step->repository, Synoptic::visitor, NULL, NULL, 0);
SynopticText::alphabetise(step->repository, text_nodes);
@ -61,6 +67,7 @@ int Synoptic::go(pipeline_step *step) {
SynopticChronology::renumber(step->repository, past_tense_action_nodes);
SynopticInstances::renumber(step->repository, instance_nodes);
SynopticScenes::renumber(step->repository, scene_nodes);
SynopticMultimedia::renumber(step->repository);
return TRUE;
}
@ -107,6 +114,12 @@ void Synoptic::visitor(inter_tree *I, inter_tree_node *P, void *state) {
inter_package *pack = Inter::Package::defined_by_frame(P);
if (Metadata::exists(pack, I"^is_scene"))
TreeLists::add(scene_nodes, P);
if (Metadata::exists(pack, I"^is_file"))
TreeLists::add(file_nodes, P);
if (Metadata::exists(pack, I"^is_figure"))
TreeLists::add(figure_nodes, P);
if (Metadata::exists(pack, I"^is_sound"))
TreeLists::add(sound_nodes, P);
}
}
}
@ -133,6 +146,7 @@ void Synoptic::syn_visitor(inter_tree *I, inter_tree_node *P, void *state) {
if (SynopticTables::redefine(I, P, con_s, synid)) return;
if (SynopticChronology::redefine(I, P, con_s, synid)) return;
if (SynopticScenes::redefine(I, P, con_s, synid)) return;
if (SynopticMultimedia::redefine(I, P, con_s, synid)) return;
LOG("Couldn't consolidate $3\n", con_s);
internal_error("symbol cannot be consolidated");
}

View file

@ -39,6 +39,7 @@ Chapter 3: Synoptic Resources
Tables
Chronology
Scenes
Multimedia
Chapter 4: Inter to Final Code
Code Generation