mirror of
https://github.com/ganelson/inform.git
synced 2024-07-05 08:34:22 +03:00
Scene status and changing made synoptic
This commit is contained in:
parent
81229aadec
commit
741209e225
|
@ -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">§2</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-rls.html">❮</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-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="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">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-rls.html">❮</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">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -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">§3</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-act.html">❮</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-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="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">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-act.html">❮</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">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -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">§2.6</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tbl.html">❮</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-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="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">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tbl.html">❮</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">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -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">§2</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-su.html">❮</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-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="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">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-su.html">❮</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">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
101
docs/codegen-module/3-ins.html
Normal file
101
docs/codegen-module/3-ins.html
Normal file
|
@ -0,0 +1,101 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Instances</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 'Instances' 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>Instances</b></li></ul></div>
|
||||
<p class="purpose">To renumber the instances and construct suitable functions and arrays.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>Before this runs, instance packages 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">instance_nodes</span></span>
|
||||
of packages of type <span class="extract"><span class="extract-syntax">_instance</span></span>.
|
||||
</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">SynopticInstances::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">SynopticInstances::renumber</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§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="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="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">instance_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance_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="comment-syntax"> for (int i=0; i<TreeLists::len(instance_nodes); i++) {</span>
|
||||
<span class="comment-syntax"> inter_package *pack = Inter::Package::defined_by_frame(instance_nodes->list[i].node);</span>
|
||||
<span class="comment-syntax"> inter_tree_node *D = Synoptic::get_definition(pack, I"scene_id");</span>
|
||||
<span class="comment-syntax"> D->W.data[DATA_CONST_IFLD+1] = (inter_ti) i;</span>
|
||||
<span class="comment-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-act2.html">❮</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">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -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">❮</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-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="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">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-ext.html">❮</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">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -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">§2</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-act2.html">❮</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">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="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">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-ins.html">❮</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">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -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">§2.7</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-rsp.html">❮</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-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="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">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-rsp.html">❮</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">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -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">§2</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-prp.html">❮</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-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="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">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-prp.html">❮</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">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -269,7 +269,7 @@ code is less limited.
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-rsp.html#SP2">§2</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-lt.html">❮</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-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="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">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-lt.html">❮</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">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
213
docs/codegen-module/3-scn.html
Normal file
213
docs/codegen-module/3-scn.html
Normal file
|
@ -0,0 +1,213 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Scenes</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 'Scenes' 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>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>§1. </b>Before this runs, property packages are scattered all over the Inter tree.
|
||||
We must allocate each one a unique ID.
|
||||
</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>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SynopticScenes::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">SynopticScenes::renumber</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP1">§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="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="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">scene_nodes</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene_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="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"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene_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">scene_nodes</span><span class="plain-syntax">-></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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_textual</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">"^name"</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">"scene %d: %S\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<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>§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">SHOWSCENESTATUS_SYNID</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">DETECTSCENECHANGE_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">SynopticScenes::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">SynopticScenes::redefine</span></span>:<br/>Synoptic Utilities - <a href="3-su.html#SP2">§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_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">SHOWSCENESTATUS_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="3-su.html#SP3" class="function-link"><span class="function-syntax">Synoptic::begin_redefining_function</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">IBM</span><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="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Add a body of code to the SHOWSCENESTATUS function</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#SP3" class="function-link"><span class="function-syntax">Synoptic::end_redefining_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">save</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="plain-syntax"> </span><span class="reserved-syntax">case</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><a href="3-su.html#SP3" class="function-link"><span class="function-syntax">Synoptic::begin_redefining_function</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">IBM</span><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="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Add a body of code to the DETECTSCENECHANGE function</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#SP3" class="function-link"><span class="function-syntax">Synoptic::end_redefining_function</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">save</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="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>§2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Add a body of code to the SHOWSCENESTATUS function</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><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"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene_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">scene_nodes</span><span class="plain-syntax">-></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">ssf_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">"^scene_status_fn"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_call</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">ssf_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_2" class="paragraph-anchor"></a><b>§2.2. </b>There is one argument, <span class="extract"><span class="extract-syntax">chs</span></span>: the number of iterations so far. Iterations
|
||||
occur because each set of scene changes could change the circumstances in such
|
||||
a way that other scene changes are now required (through external conditions,
|
||||
not through anchors); we don't want this to lock up, so we will cap recursion.
|
||||
Within the routine, a second local variable, <span class="extract"><span class="extract-syntax">ch</span></span>, is a flag indicating
|
||||
whether any change in status has or has not occurred.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">MAX_SCENE_CHANGE_ITERATION</span><span class="plain-syntax"> </span><span class="constant-syntax">20</span>
|
||||
</pre>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Add a body of code to the DETECTSCENECHANGE function</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><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>
|
||||
<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"><</span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene_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">scene_nodes</span><span class="plain-syntax">-></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">scf_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">"^scene_change_fn"</span><span class="plain-syntax">);</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">IF_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::inv_call</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">scf_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</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::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::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">CScene_l</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="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="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="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::rfalse</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::place_label</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">CScene_l</span><span class="plain-syntax">);</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">IF_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::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">GT_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::val_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::val</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">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="constant-syntax">MAX_SCENE_CHANGE_ITERATION</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="plain-syntax"> </span><span class="identifier-syntax">Produce::code</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::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::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">PRINT_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::val_text</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">">--> The scene change machinery is stuck.\n"</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="plain-syntax"> </span><span class="identifier-syntax">Produce::rtrue</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::up</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::up</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::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">PREINCREMENT_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::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>
|
||||
<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>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP2">§2</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-chr.html">❮</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">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -97,6 +97,8 @@ function togglePopup(material_id) {
|
|||
<span class="identifier-syntax">inter_tree_location_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_column_usage_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">past_tense_action_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">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="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>
|
||||
|
@ -113,6 +115,8 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">table_column_usage_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">past_tense_action_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">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">InterTree::traverse</span><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></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">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_nodes</span><span class="plain-syntax">);</span>
|
||||
|
||||
|
@ -126,6 +130,8 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="3-rlt.html#SP1" class="function-link"><span class="function-syntax">SynopticRelations::renumber</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-tbl.html#SP1" class="function-link"><span class="function-syntax">SynopticTables::renumber</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">repository</span><span class="plain-syntax">, </span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax">);</span>
|
||||
<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">-></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">-></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">-></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><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>
|
||||
|
||||
|
@ -167,6 +173,12 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::add</span><span class="plain-syntax">(</span><span class="identifier-syntax">past_tense_action_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">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</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">"_past_condition"</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">past_tense_condition_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">ptype</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PackageTypes::get</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">"_instance"</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">instance_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="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="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -191,13 +203,14 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-rlt.html#SP2" class="function-link"><span class="function-syntax">SynopticRelations::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-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="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">§1</a><br/>Activities - <a href="3-act.html#SP1">§1</a><br/>Actions - <a href="3-act2.html#SP2">§2</a><br/>Properties - <a href="3-prp.html#SP1">§1</a><br/>Relations - <a href="3-rlt.html#SP1">§1</a><br/>Tables - <a href="3-tbl.html#SP1">§1</a><br/>Chronology - <a href="3-chr.html#SP1">§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">§1</a><br/>Activities - <a href="3-act.html#SP1">§1</a><br/>Actions - <a href="3-act2.html#SP2">§2</a><br/>Instances - <a href="3-ins.html#SP1">§1</a><br/>Properties - <a href="3-prp.html#SP1">§1</a><br/>Relations - <a href="3-rlt.html#SP1">§1</a><br/>Tables - <a href="3-tbl.html#SP1">§1</a><br/>Chronology - <a href="3-chr.html#SP1">§1</a><br/>Scenes - <a href="3-scn.html#SP1">§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>
|
||||
|
@ -234,14 +247,14 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</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">name</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="function-syntax">Synoptic::get_local</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">Synoptic::get_local</span></span>:<br/>Extensions - <a href="3-ext.html#SP2_3">§2.3</a><br/>Responses - <a href="3-rsp.html#SP2_4">§2.4</a><br/>Rules - <a href="3-rls.html#SP2_6">§2.6</a>, <a href="3-rls.html#SP2_7">§2.7</a><br/>Actions - <a href="3-act2.html#SP3_6">§3.6</a><br/>Relations - <a href="3-rlt.html#SP2_3">§2.3</a>, <a href="3-rlt.html#SP2_4">§2.4</a><br/>Tables - <a href="3-tbl.html#SP2_2">§2.2</a>, <a href="3-tbl.html#SP2_3">§2.3</a><br/>Chronology - <a href="3-chr.html#SP2_6">§2.6</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">Synoptic::get_local</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">Synoptic::get_local</span></span>:<br/>Extensions - <a href="3-ext.html#SP2_3">§2.3</a><br/>Responses - <a href="3-rsp.html#SP2_4">§2.4</a><br/>Rules - <a href="3-rls.html#SP2_6">§2.6</a>, <a href="3-rls.html#SP2_7">§2.7</a><br/>Actions - <a href="3-act2.html#SP3_6">§3.6</a><br/>Relations - <a href="3-rlt.html#SP2_3">§2.3</a>, <a href="3-rlt.html#SP2_4">§2.4</a><br/>Tables - <a href="3-tbl.html#SP2_2">§2.2</a>, <a href="3-tbl.html#SP2_3">§2.3</a><br/>Chronology - <a href="3-chr.html#SP2_6">§2.6</a><br/>Scenes - <a href="3-scn.html#SP2_2">§2.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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</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::Bookmarks::package</span><span class="plain-syntax">(</span><span class="identifier-syntax">Produce::at</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_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">loc_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTables::symbol_from_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">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">loc_s</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">Metadata::err</span><span class="plain-syntax">(</span><span class="string-syntax">"local not found"</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</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">loc_s</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">Synoptic::begin_redefining_function</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Synoptic::begin_redefining_function</span></span>:<br/>Extensions - <a href="3-ext.html#SP2">§2</a><br/>Responses - <a href="3-rsp.html#SP2">§2</a><br/>Rules - <a href="3-rls.html#SP2">§2</a><br/>Actions - <a href="3-act2.html#SP3">§3</a><br/>Relations - <a href="3-rlt.html#SP2">§2</a><br/>Tables - <a href="3-tbl.html#SP2">§2</a><br/>Chronology - <a href="3-chr.html#SP2">§2</a></span></button><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</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">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::begin_redefining_function</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Synoptic::begin_redefining_function</span></span>:<br/>Extensions - <a href="3-ext.html#SP2">§2</a><br/>Responses - <a href="3-rsp.html#SP2">§2</a><br/>Rules - <a href="3-rls.html#SP2">§2</a><br/>Actions - <a href="3-act2.html#SP3">§3</a><br/>Relations - <a href="3-rlt.html#SP2">§2</a><br/>Tables - <a href="3-tbl.html#SP2">§2</a><br/>Chronology - <a href="3-chr.html#SP2">§2</a><br/>Scenes - <a href="3-scn.html#SP2">§2</a></span></button><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</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">FORMAT_CONST_IFLD</span><span class="plain-syntax">] != </span><span class="identifier-syntax">CONSTANT_ROUTINE</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">"%d\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></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">FORMAT_CONST_IFLD</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">"not a function"</span><span class="plain-syntax">);</span>
|
||||
|
@ -260,7 +273,7 @@ function togglePopup(material_id) {
|
|||
<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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Synoptic::end_redefining_function</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">Synoptic::end_redefining_function</span></span>:<br/>Extensions - <a href="3-ext.html#SP2">§2</a><br/>Responses - <a href="3-rsp.html#SP2">§2</a><br/>Rules - <a href="3-rls.html#SP2">§2</a><br/>Actions - <a href="3-act2.html#SP3">§3</a><br/>Relations - <a href="3-rlt.html#SP2">§2</a><br/>Tables - <a href="3-tbl.html#SP2">§2</a><br/>Chronology - <a href="3-chr.html#SP2">§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">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">Synoptic::end_redefining_function</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">Synoptic::end_redefining_function</span></span>:<br/>Extensions - <a href="3-ext.html#SP2">§2</a><br/>Responses - <a href="3-rsp.html#SP2">§2</a><br/>Rules - <a href="3-rls.html#SP2">§2</a><br/>Actions - <a href="3-act2.html#SP3">§3</a><br/>Relations - <a href="3-rlt.html#SP2">§2</a><br/>Tables - <a href="3-tbl.html#SP2">§2</a><br/>Chronology - <a href="3-chr.html#SP2">§2</a><br/>Scenes - <a href="3-scn.html#SP2">§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">packaging_state</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::set_state</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">save</span><span class="plain-syntax">.</span><span class="identifier-syntax">saved_IRS</span><span class="plain-syntax">, </span><span class="identifier-syntax">save</span><span class="plain-syntax">.</span><span class="identifier-syntax">saved_enclosure</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::pop_code_position</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">Site::set_cir</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
|
@ -346,7 +359,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Q</span><span class="plain-syntax">-></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">-></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="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Synoptic::get_definition</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">Synoptic::get_definition</span></span>:<br/>Extensions - <a href="3-ext.html#SP1">§1</a><br/>Responses - <a href="3-rsp.html#SP1">§1</a><br/>Rules - <a href="3-rls.html#SP1">§1</a><br/>Activities - <a href="3-act.html#SP1">§1</a><br/>Actions - <a href="3-act2.html#SP2">§2</a><br/>Properties - <a href="3-prp.html#SP1">§1</a><br/>Relations - <a href="3-rlt.html#SP1">§1</a><br/>Tables - <a href="3-tbl.html#SP1">§1</a>, <a href="3-tbl.html#SP2_4">§2.4</a><br/>Chronology - <a href="3-chr.html#SP1">§1</a></span></button><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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Synoptic::get_definition</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">Synoptic::get_definition</span></span>:<br/>Extensions - <a href="3-ext.html#SP1">§1</a><br/>Responses - <a href="3-rsp.html#SP1">§1</a><br/>Rules - <a href="3-rls.html#SP1">§1</a><br/>Activities - <a href="3-act.html#SP1">§1</a><br/>Actions - <a href="3-act2.html#SP2">§2</a><br/>Instances - <a href="3-ins.html#SP1">§1</a><br/>Properties - <a href="3-prp.html#SP1">§1</a><br/>Relations - <a href="3-rlt.html#SP1">§1</a><br/>Tables - <a href="3-tbl.html#SP1">§1</a>, <a href="3-tbl.html#SP2_4">§2.4</a><br/>Chronology - <a href="3-chr.html#SP1">§1</a></span></button><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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</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">def_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSymbolsTables::symbol_from_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">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">def_s</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">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Unable to find symbol %S in $6\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
|
||||
|
@ -380,7 +393,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">❮</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-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="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">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-ero.html">❮</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">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -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">§2</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-rlt.html">❮</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-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="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">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-rlt.html">❮</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">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -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-chr.html">❮</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">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-scn.html">❮</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">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -198,6 +198,11 @@
|
|||
<spon class="sectiontitle">Actions</span></a> -
|
||||
<span class="sectionpurpose">To renumber the actions and construct suitable functions and arrays.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-ins.html">
|
||||
<spon class="sectiontitle">Instances</span></a> -
|
||||
<span class="sectionpurpose">To renumber the instances and construct suitable functions and arrays.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-prp.html">
|
||||
<spon class="sectiontitle">Properties</span></a> -
|
||||
|
@ -218,6 +223,11 @@
|
|||
<spon class="sectiontitle">Chronology</span></a> -
|
||||
<span class="sectionpurpose">To construct suitable functions and arrays to manage past-tense references in code.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-scn.html">
|
||||
<spon class="sectiontitle">Scenes</span></a> -
|
||||
<span class="sectionpurpose">To renumber the scenes and construct suitable functions and arrays.</span></p>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
|
|
|
@ -326,6 +326,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">RTRules::rulebook_var_creators</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">RTRules::compile_rulebooks</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">RTRules::compile_metadata</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">RTInstances::compile_metadata</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">RTProperties::compile_metadata</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">RTActivities::activity_var_creators</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">RTVerbs::ConjugateVerb</span><span class="plain-syntax">)</span>
|
||||
|
|
|
@ -97,8 +97,11 @@ to non-trivial functions as well as tables of data.
|
|||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Scenes::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="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">RTScenes::DetectSceneChange_routine</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">RTScenes::ShowSceneStatus_routine</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">RTScenes::compile_change_functions</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">RTScenes::compile_show_status_functions</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">stage</span><span class="plain-syntax"> == </span><span class="identifier-syntax">INTER3_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">RTScenes::compile_synoptic_resources</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>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -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">§23</a><br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Rules - <a href="5-rls.html#SP2">§2</a>, <a href="5-rls.html#SP7">§7</a>, <a href="5-rls.html#SP10">§10</a>, <a href="5-rls.html#SP12">§12</a><br/>Activities - <a href="5-act.html#SP2">§2</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP14">§14</a><br/>Instance Counting - <a href="5-ic.html#SP9">§9</a><br/>Relations at Run Time - <a href="5-rart.html#SP1">§1</a>, <a href="5-rart.html#SP4">§4</a>, <a href="5-rart.html#SP4_1">§4.1</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_1_1_1_1_3">§4.1.1.1.1.3</a><br/>Chronology - <a href="5-chr.html#SP3">§3</a>, <a href="5-chr.html#SP4">§4</a><br/>Naming - <a href="6-nmn.html#SP2">§2</a><br/>Spatial - <a href="6-spt.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP2_1">§2.1</a><br/>The Score - <a href="6-ts.html#SP1">§1</a><br/>Actions - <a href="7-act.html#SP1">§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">§23</a><br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Rules - <a href="5-rls.html#SP2">§2</a>, <a href="5-rls.html#SP7">§7</a>, <a href="5-rls.html#SP10">§10</a>, <a href="5-rls.html#SP12">§12</a><br/>Activities - <a href="5-act.html#SP2">§2</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP14">§14</a><br/>Instance Counting - <a href="5-ic.html#SP9">§9</a><br/>Relations at Run Time - <a href="5-rart.html#SP1">§1</a>, <a href="5-rart.html#SP4">§4</a>, <a href="5-rart.html#SP4_1">§4.1</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP4_1_1_1_1_3">§4.1.1.1.1.3</a><br/>Chronology - <a href="5-chr.html#SP3">§3</a>, <a href="5-chr.html#SP4">§4</a><br/>Naming - <a href="6-nmn.html#SP2">§2</a><br/>Spatial - <a href="6-spt.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP2_1">§2.1</a><br/>The Score - <a href="6-ts.html#SP1">§1</a><br/>Scenes - <a href="6-scn.html#SP2">§2</a>, <a href="6-scn.html#SP6">§6</a><br/>Actions - <a href="7-act.html#SP1">§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
|
@ -86,11 +86,28 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="5-ni.html#SP1" class="function-link"><span class="function-syntax">NounIdentifiers::noun_compose_identifier</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-></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="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_noun</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">icd</span><span class="plain-syntax">.</span><span class="identifier-syntax">instance_iname</span><span class="plain-syntax"> = </span><a href="5-ni.html#SP1" class="function-link"><span class="function-syntax">NounIdentifiers::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_noun</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_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-></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="constant-syntax">INSTANCE_NAME_METADATA_HL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Nouns::nominative</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_noun</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">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">icd</span><span class="plain-syntax">.</span><span class="identifier-syntax">instance_emitted</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTInstances::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">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="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</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_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-></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_NAME_METADATA_HL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Nouns::nominative</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_noun</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-></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_VALUE_METADATA_HL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">icd</span><span class="plain-syntax">.</span><span class="element-syntax">instance_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">kn_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_KIND_METADATA_HL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></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="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::to_kind</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-rsfk.html#SP14" class="function-link"><span class="function-syntax">RTKinds::constant_from_strong_id</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kn_iname</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_scene</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_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">-></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="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTInstances::iname</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">RTInstances::iname</span></span>:<br/><a href="5-ins.html#SP2">§2</a>, <a href="5-ins.html#SP4">§4</a><br/>List Literals - <a href="4-ll.html#SP7_2">§7.2</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Runtime Support for Kinds - <a href="5-rsfk.html#SP26_3">§26.3</a><br/>Naming - <a href="6-nmn.html#SP2">§2</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>Backdrops - <a href="6-bck.html#SP2_1">§2.1</a><br/>Regions - <a href="6-rgn.html#SP2">§2</a><br/>The Map - <a href="6-tm.html#SP2_2">§2.2</a>, <a href="6-tm.html#SP3">§3</a>, <a href="6-tm.html#SP4">§4</a><br/>Action Patterns - <a href="7-ap.html#SP6_1_1_1">§6.1.1.1</a><br/>Tokens Parsing Values - <a href="8-tpv.html#SP1_1">§1.1</a><br/>Test Scripts - <a href="10-ts.html#SP3">§3</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><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">icd</span><span class="plain-syntax">.</span><span class="element-syntax">instance_iname</span><span class="plain-syntax">;</span>
|
||||
|
@ -152,7 +169,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">§2</a><br/>Naming - <a href="6-nmn.html#SP2">§2</a><br/>Backdrops - <a href="6-bck.html#SP1">§1</a><br/>Regions - <a href="6-rgn.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP3">§3</a><br/>Actions - <a href="7-act.html#SP1">§1</a><br/>Parsing - <a href="8-prs.html#SP2">§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">§2</a><br/>Naming - <a href="6-nmn.html#SP2">§2</a><br/>Backdrops - <a href="6-bck.html#SP1">§1</a><br/>Regions - <a href="6-rgn.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP3">§3</a><br/>Scenes - <a href="6-scn.html#SP2">§2</a>, <a href="6-scn.html#SP6">§6</a><br/>Actions - <a href="7-act.html#SP1">§1</a><br/>Parsing - <a href="8-prs.html#SP2">§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="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">-></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>
|
||||
|
|
|
@ -618,7 +618,7 @@ turns up. This means remembering everything we've seen, using a new structure:
|
|||
<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">RTKinds::constant_from_strong_id</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">RTKinds::constant_from_strong_id</span></span>:<br/>Runtime Support for Tables - <a href="5-rsft.html#SP1">§1</a><br/>Actions - <a href="7-act.html#SP1">§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">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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTKinds::constant_from_strong_id</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">RTKinds::constant_from_strong_id</span></span>:<br/>Instances - <a href="5-ins.html#SP1">§1</a><br/>Runtime Support for Tables - <a href="5-rsft.html#SP1">§1</a><br/>Actions - <a href="7-act.html#SP1">§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">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="plain-syntax"> </span><span class="reserved-syntax">runtime_kind_structure</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rks</span><span class="plain-syntax"> = </span><a href="5-rsfk.html#SP15" class="function-link"><span class="function-syntax">RTKinds::get_rks</span></a><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">rks</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">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">rks</span><span class="plain-syntax">-></span><span class="element-syntax">rks_iname</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -113,89 +113,33 @@ occurs, and (b) act upon it. This is all handled by the following Inter
|
|||
function.
|
||||
</p>
|
||||
|
||||
<p class="commentary">There is one argument, <span class="extract"><span class="extract-syntax">chs</span></span>: the number of iterations so far. Iterations
|
||||
occur because each set of scene changes could change the circumstances in such
|
||||
a way that other scene changes are now required (through external conditions,
|
||||
not through anchors); we don't want this to lock up, so we will cap recursion.
|
||||
Within the routine, a second local variable, <span class="extract"><span class="extract-syntax">ch</span></span>, is a flag indicating
|
||||
whether any change in status has or has not occurred.
|
||||
</p>
|
||||
|
||||
<p class="commentary">There is no significance to the return value.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">MAX_SCENE_CHANGE_ITERATION</span><span class="plain-syntax"> </span><span class="constant-syntax">20</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTScenes::DetectSceneChange_routine</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">DETECTSCENECHANGE_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><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">chs_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">"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">CScene_l</span><span class="plain-syntax"> = </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::reserve_label</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">".CScene"</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTScenes::compile_change_functions</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">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</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">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">scene</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="6-scn.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Compile code detecting the ends of a specific scene</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::place_label</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CScene_l</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-scn.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Add the scene-change tail</span><span class="named-paragraph-number">2.1</span></a></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="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">scene</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>
|
||||
<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">SCENE_CHANGE_FN_HL</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">sc</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">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">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="named-paragraph-container code-font"><a href="6-scn.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Compile code detecting the ends of a specific scene</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP11" class="function-link"><span class="function-syntax">EmitCode::rfalse</span></a><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><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_SCF_METADATA_HL</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">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_instance</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">md_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</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>§2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Add the scene-change tail</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="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_symbol</span></a><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><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_number</span></a><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="constant-syntax">MAX_SCENE_CHANGE_ITERATION</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">">--> The scene change machinery is stuck.\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP11" class="function-link"><span class="function-syntax">EmitCode::rtrue</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">GT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">ch_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_number</span></a><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PREINCREMENT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP9" class="function-link"><span class="function-syntax">EmitCode::ref_symbol</span></a><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><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP11" class="function-link"><span class="function-syntax">EmitCode::rfalse</span></a><span class="plain-syntax">();</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-scn.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_2" class="paragraph-anchor"></a><b>§2.2. </b>Recall that ends numbered 1, 2, 3, ... are all ways for the scene to end,
|
||||
<p class="commentary firstcommentary"><a id="SP2_1" class="paragraph-anchor"></a><b>§2.1. </b>Recall that ends numbered 1, 2, 3, ... are all ways for the scene to end,
|
||||
so they are only checked if its status is currently running; end 0 is the
|
||||
beginning, checked only if it isn't. We give priority to the higher end
|
||||
numbers so that more abstruse ways to end take precedence over less.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile code detecting the ends of a specific scene</span><span class="named-paragraph-number">2.2</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile code detecting the ends of a specific scene</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">
|
||||
|
@ -213,7 +157,7 @@ numbers so that more abstruse ways to end take precedence over less.
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><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">end</span><span class="plain-syntax">=</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">no_ends</span><span class="plain-syntax">-1; </span><span class="identifier-syntax">end</span><span class="plain-syntax">>=1; </span><span class="identifier-syntax">end</span><span class="plain-syntax">--)</span>
|
||||
<span class="plain-syntax"> </span><a href="6-scn.html#SP3" class="function-link"><span class="function-syntax">RTScenes::test_scene_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">end</span><span class="plain-syntax">, </span><span class="identifier-syntax">ch_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">CScene_l</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-scn.html#SP3" class="function-link"><span class="function-syntax">RTScenes::test_scene_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">end</span><span class="plain-syntax">, </span><span class="identifier-syntax">ch_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
|
||||
|
@ -230,7 +174,7 @@ numbers so that more abstruse ways to end take precedence over less.
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="6-scn.html#SP3" class="function-link"><span class="function-syntax">RTScenes::test_scene_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">ch_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">CScene_l</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-scn.html#SP3" class="function-link"><span class="function-syntax">RTScenes::test_scene_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">ch_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
</pre>
|
||||
|
@ -243,7 +187,7 @@ below.
|
|||
</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">RTScenes::test_scene_end</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">RTScenes::test_scene_end</span></span>:<br/><a href="6-scn.html#SP2_2">§2.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">end</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="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CScene_l</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTScenes::test_scene_end</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">RTScenes::test_scene_end</span></span>:<br/><a href="6-scn.html#SP2_1">§2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">end</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="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">end</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">start_of_play</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
|
@ -316,10 +260,7 @@ instruction because we're not compiling a loop.)
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_number</span></a><span class="plain-syntax">(1);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="6-scn.html#SP4" class="function-link"><span class="function-syntax">RTScenes::compile_scene_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">end</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">JUMP_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::lab</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CScene_l</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP11" class="function-link"><span class="function-syntax">EmitCode::rtrue</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
</pre>
|
||||
|
@ -589,15 +530,16 @@ what handles this.
|
|||
</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">RTScenes::ShowSceneStatus_routine</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">SHOWSCENESTATUS_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><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><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IFDEBUG_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTScenes::compile_show_status_functions</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">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</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">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">scene</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>
|
||||
<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">SCENE_STATUS_FN_HL</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">sc</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">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><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IFDEBUG_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</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">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">scene</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">NW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP10" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IFELSE_BIP</span><span class="plain-syntax">);</span>
|
||||
|
@ -620,11 +562,12 @@ what handles this.
|
|||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-scn.html#SP6_2" class="named-paragraph-link"><span class="named-paragraph">Show status of this non-running scene</span><span class="named-paragraph-number">6.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><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="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><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_SSF_METADATA_HL</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">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_instance</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">md_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6_1" class="paragraph-anchor"></a><b>§6.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Show status of this running scene</span><span class="named-paragraph-number">6.1</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -780,6 +723,44 @@ actually running:
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. </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">RTScenes::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="6-scn.html#SP8_1" class="named-paragraph-link"><span class="named-paragraph">Provide placeholder for the SHOWSCENESTATUS function</span><span class="named-paragraph-number">8.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-scn.html#SP8_2" class="named-paragraph-link"><span class="named-paragraph">Provide placeholder for the DETECTSCENECHANGE function</span><span class="named-paragraph-number">8.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8_1" class="paragraph-anchor"></a><b>§8.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Provide placeholder for the SHOWSCENESTATUS function</span><span class="named-paragraph-number">8.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">SHOWSCENESTATUS_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">SHOWSCENESTATUS_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><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="6-scn.html#SP8">§8</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP8_2" class="paragraph-anchor"></a><b>§8.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Provide placeholder for the DETECTSCENECHANGE function</span><span class="named-paragraph-number">8.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">DETECTSCENECHANGE_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">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">-></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="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="6-scn.html#SP8">§8</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="6-tr.html">❮</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="progresschapter"><a href="5-rls.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-nmn.html">nmn</a></li><li class="progresssection"><a href="6-bd.html">bd</a></li><li class="progresssection"><a href="6-spt.html">spt</a></li><li class="progresssection"><a href="6-tp.html">tp</a></li><li class="progresssection"><a href="6-bck.html">bck</a></li><li class="progresssection"><a href="6-rgn.html">rgn</a></li><li class="progresssection"><a href="6-tm.html">tm</a></li><li class="progresssection"><a href="6-ts.html">ts</a></li><li class="progresssection"><a href="6-tr.html">tr</a></li><li class="progresscurrent">scn</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="7-act.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
Total memory consumption was 296195K = 289 MB
|
||||
Total memory consumption was 298905K = 292 MB
|
||||
|
||||
63.7% was used for 1463905 objects, in 316039 frames in 236 x 800K = 188800K = 184 MB:
|
||||
63.9% was used for 1469154 objects, in 316296 frames in 239 x 800K = 191200K = 186 MB:
|
||||
|
||||
9.5% inter_tree_node_array 40 x 8192 = 327680 objects, 28837120 bytes
|
||||
5.9% text_stream_array 3229 x 100 = 322900 objects, 18185728 bytes
|
||||
5.3% linked_list 29077 objects, 16283120 bytes
|
||||
3.4% parse_node 129367 objects, 10349360 bytes
|
||||
2.7% inter_symbol_array 84 x 1024 = 86016 objects, 8260224 bytes
|
||||
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
|
||||
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
|
||||
1.8% parse_node_annotation_array 345 x 500 = 172500 objects, 5531040 bytes
|
||||
1.0% pcalc_prop_array 24 x 1000 = 24000 objects, 3264768 bytes
|
||||
|
@ -14,22 +14,22 @@ Total memory consumption was 296195K = 289 MB
|
|||
0.8% kind_array 66 x 1000 = 66000 objects, 2642112 bytes
|
||||
0.6% inter_schema_token 13459 objects, 1938096 bytes
|
||||
0.5% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes
|
||||
0.4% inter_name_array 29 x 1000 = 29000 objects, 1392928 bytes
|
||||
0.4% inter_name_array 30 x 1000 = 30000 objects, 1440960 bytes
|
||||
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 14893 objects, 1072296 bytes
|
||||
0.3% inter_package 14899 objects, 1072728 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 14893 objects, 953152 bytes
|
||||
0.3% dictionary 19366 objects, 929568 bytes
|
||||
0.3% inter_symbols_table 14899 objects, 953536 bytes
|
||||
0.3% dictionary 19542 objects, 938016 bytes
|
||||
0.2% production 3885 objects, 901320 bytes
|
||||
0.2% dict_entry_array 272 x 100 = 27200 objects, 879104 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 9536 objects, 839168 bytes
|
||||
0.2% package_request 9540 objects, 839520 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 296195K = 289 MB
|
|||
---- nonterminal 759 objects, 139656 bytes
|
||||
---- compilation_subtask 1664 objects, 133120 bytes
|
||||
---- nascent_array 1969 objects, 126016 bytes
|
||||
---- hierarchy_location 805 objects, 115920 bytes
|
||||
---- hierarchy_location 812 objects, 116928 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, 82128 bytes
|
||||
---- inter_tree 6 objects, 82464 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,11 +110,11 @@ Total memory consumption was 296195K = 289 MB
|
|||
---- booking_list 407 objects, 13024 bytes
|
||||
---- adjective_iname_holder 320 objects, 12800 bytes
|
||||
---- pathname 292 objects, 11680 bytes
|
||||
---- stopwatch_timer 138 objects, 11040 bytes
|
||||
---- stopwatch_timer 140 objects, 11200 bytes
|
||||
---- filename 208 objects, 8320 bytes
|
||||
---- equation_node 68 objects, 7616 bytes
|
||||
---- uniqueness_count 306 objects, 7344 bytes
|
||||
---- understanding_item_array 3 x 100 = 300 objects, 7296 bytes
|
||||
---- uniqueness_count 302 objects, 7248 bytes
|
||||
---- shared_variable_array 1 x 100 objects, 7232 bytes
|
||||
---- determiner 22 objects, 7216 bytes
|
||||
---- verb 108 objects, 6048 bytes
|
||||
|
@ -141,7 +141,7 @@ Total memory consumption was 296195K = 289 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 71 objects, 2840 bytes
|
||||
---- submodule_request 73 objects, 2920 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
|
||||
|
@ -176,24 +176,24 @@ Total memory consumption was 296195K = 289 MB
|
|||
---- target_vm 6 objects, 816 bytes
|
||||
---- generated_segment 25 objects, 800 bytes
|
||||
---- inter_data_type 14 objects, 784 bytes
|
||||
---- submodule_identity 23 objects, 736 bytes
|
||||
---- submodule_identity 24 objects, 768 bytes
|
||||
---- inform_language 6 objects, 672 bytes
|
||||
---- relation_guard 5 objects, 640 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
|
||||
---- inter_tree_location_list 14 objects, 560 bytes
|
||||
---- rulebook_outcome 17 objects, 544 bytes
|
||||
---- small_word_set 11 objects, 528 bytes
|
||||
---- inform_kit 5 objects, 520 bytes
|
||||
---- implication 13 objects, 520 bytes
|
||||
---- inform_kit 5 objects, 520 bytes
|
||||
---- inference_family 11 objects, 440 bytes
|
||||
---- i6_memory_setting 13 objects, 416 bytes
|
||||
---- equation 4 objects, 416 bytes
|
||||
---- i6_memory_setting 13 objects, 416 bytes
|
||||
---- dval_written 10 objects, 400 bytes
|
||||
---- bp_family 12 objects, 384 bytes
|
||||
---- article_usage 8 objects, 384 bytes
|
||||
---- bp_family 12 objects, 384 bytes
|
||||
---- source_file 5 objects, 360 bytes
|
||||
---- module_package 9 objects, 360 bytes
|
||||
---- inbuild_genre 7 objects, 336 bytes
|
||||
|
@ -237,24 +237,24 @@ Total memory consumption was 296195K = 289 MB
|
|||
---- kind_template_definition 1 object, 40 bytes
|
||||
---- parse_name_notice 1 object, 40 bytes
|
||||
|
||||
36.2% was used for memory not allocated for objects:
|
||||
36.0% was used for memory not allocated for objects:
|
||||
|
||||
16.7% text stream storage 50819960 bytes in 333795 claims
|
||||
3.5% dictionary storage 10831872 bytes in 19366 claims
|
||||
---- sorting 952 bytes in 3 claims
|
||||
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
|
||||
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 2567488 bytes in 15716 claims
|
||||
5.5% inter bytecode storage 16802776 bytes in 14 claims
|
||||
0.8% inter symbols storage 2568752 bytes in 15723 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 113920 bytes in 16 claims
|
||||
---- inter tree location list storage 122112 bytes in 18 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
|
||||
---- code generation workspace for objects 9192 bytes in 9 claims
|
||||
|
||||
20.1% was overhead - 61158504 bytes = 59725K = 58 MB
|
||||
20.6% was overhead - 63283368 bytes = 61800K = 60 MB
|
||||
|
||||
|
|
|
@ -1,37 +1,38 @@
|
|||
100.0% in inform7 run
|
||||
53.3% in compilation to Inter
|
||||
31.9% in //Sequence::undertake_queued_tasks//
|
||||
5.3% in //InferenceSubjects::emit_all//
|
||||
3.4% in //MajorNodes::pre_pass//
|
||||
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//
|
||||
1.7% in //ImperativeDefinitions::compile_first_block//
|
||||
1.4% in //ImperativeDefinitions::assess_all//
|
||||
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.4% in //MajorNodes::pass_2//
|
||||
0.4% in //World::stage_V//
|
||||
0.3% in //MajorNodes::pass_2//
|
||||
0.3% 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//
|
||||
0.1% in //RTRelations::compile_defined_relations//
|
||||
0.1% in //RTRules::compile_metadata//
|
||||
0.1% in //RTTables::compile//
|
||||
0.1% in //Task::make_built_in_kind_constructors//
|
||||
0.1% in //World::stages_II_and_III//
|
||||
2.7% not specifically accounted for
|
||||
44.4% in running Inter pipeline
|
||||
14.3% in inter step 10/14: consolidate-text
|
||||
10.4% in step preparation
|
||||
8.7% in inter step 2/14: link
|
||||
6.3% in inter step 14/14: generate inform6 -> auto.inf
|
||||
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
|
||||
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.1% in inter step 11/14: reconcile-verbs
|
||||
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.5% not specifically accounted for
|
||||
1.8% in supervisor
|
||||
0.4% not specifically accounted for
|
||||
2.1% not specifically accounted for
|
||||
1.7% in supervisor
|
||||
0.2% not specifically accounted for
|
||||
|
|
|
@ -207,6 +207,7 @@ so on. Those absolute basics are made here.
|
|||
BENCH(RTRules::rulebook_var_creators)
|
||||
BENCH(RTRules::compile_rulebooks)
|
||||
BENCH(RTRules::compile_metadata)
|
||||
BENCH(RTInstances::compile_metadata)
|
||||
BENCH(RTProperties::compile_metadata)
|
||||
BENCH(RTActivities::activity_var_creators)
|
||||
BENCH(RTVerbs::ConjugateVerb)
|
||||
|
|
|
@ -24,8 +24,11 @@ void Scenes::start(void) {
|
|||
int Scenes::production_line(int stage, int debugging,
|
||||
stopwatch_timer *sequence_timer) {
|
||||
if (stage == INTER1_CSEQ) {
|
||||
BENCH(RTScenes::DetectSceneChange_routine);
|
||||
BENCH(RTScenes::ShowSceneStatus_routine);
|
||||
BENCH(RTScenes::compile_change_functions);
|
||||
BENCH(RTScenes::compile_show_status_functions);
|
||||
}
|
||||
if (stage == INTER3_CSEQ) {
|
||||
BENCH(RTScenes::compile_synoptic_resources);
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
@ -191,6 +191,7 @@ void Hierarchy::establish(void) {
|
|||
@<Establish relations@>;
|
||||
@<Establish rulebooks@>;
|
||||
@<Establish rules@>;
|
||||
@<Establish scenes@>;
|
||||
@<Establish tables@>;
|
||||
@<Establish variables@>;
|
||||
@<Establish enclosed matter@>;
|
||||
|
@ -245,11 +246,11 @@ void Hierarchy::establish(void) {
|
|||
H_C_T(KIT_CONFIGURATION_BITMAP_HL, I"KIT_CONFIGURATION_BITMAP")
|
||||
H_C_T(KIT_CONFIGURATION_LOOKMODE_HL, I"KIT_CONFIGURATION_LOOKMODE")
|
||||
H_C_T(LOCALPARKING_HL, I"LocalParking")
|
||||
H_C_T(RNG_SEED_AT_START_OF_PLAY_HL, I"RNG_SEED_AT_START_OF_PLAY")
|
||||
H_END
|
||||
|
||||
H_BEGIN(HierarchyLocations::synoptic_submodule(I, basics))
|
||||
H_C_T(MAX_FRAME_SIZE_NEEDED_HL, I"MAX_FRAME_SIZE_NEEDED")
|
||||
H_C_T(RNG_SEED_AT_START_OF_PLAY_HL, I"RNG_SEED_AT_START_OF_PLAY")
|
||||
H_END
|
||||
|
||||
submodule_identity *basic_extras = Packaging::register_submodule(I"BasicInformExtrasKit");
|
||||
|
@ -704,7 +705,14 @@ void Hierarchy::establish(void) {
|
|||
|
||||
@e INSTANCES_HAP
|
||||
@e INSTANCE_NAME_METADATA_HL
|
||||
@e INSTANCE_VALUE_METADATA_HL
|
||||
@e INSTANCE_KIND_METADATA_HL
|
||||
@e INSTANCE_IS_SCENE_METADATA_HL
|
||||
@e INSTANCE_SSF_METADATA_HL
|
||||
@e INSTANCE_SCF_METADATA_HL
|
||||
@e INSTANCE_HL
|
||||
@e SCENE_STATUS_FN_HL
|
||||
@e SCENE_CHANGE_FN_HL
|
||||
@e BACKDROP_FOUND_IN_FN_HL
|
||||
@e REGION_FOUND_IN_FN_HL
|
||||
@e SHORT_NAME_FN_HL
|
||||
|
@ -720,7 +728,14 @@ void Hierarchy::establish(void) {
|
|||
H_BEGIN(HierarchyLocations::local_submodule(instances))
|
||||
H_BEGIN_AP(INSTANCES_HAP, I"instance", I"_instance")
|
||||
H_C_U(INSTANCE_NAME_METADATA_HL, I"^name")
|
||||
H_C_U(INSTANCE_VALUE_METADATA_HL, I"^value")
|
||||
H_C_U(INSTANCE_KIND_METADATA_HL, I"^kind")
|
||||
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_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")
|
||||
H_F_U(BACKDROP_FOUND_IN_FN_HL, I"backdrop_found_in_fn")
|
||||
H_F_G(SHORT_NAME_FN_HL, I"short_name_fn", I"SN_R")
|
||||
H_F_G(SHORT_NAME_PROPERTY_FN_HL, I"short_name_property_fn", I"SN_R_A")
|
||||
|
@ -737,8 +752,6 @@ void Hierarchy::establish(void) {
|
|||
|
||||
@e INITIAL_MAX_SCORE_HL
|
||||
@e NO_DIRECTIONS_HL
|
||||
@e SHOWSCENESTATUS_HL
|
||||
@e DETECTSCENECHANGE_HL
|
||||
@e MAP_STORAGE_HL
|
||||
@e INITIALSITUATION_HL
|
||||
@e PLAYER_OBJECT_INIS_HL
|
||||
|
@ -752,18 +765,19 @@ void Hierarchy::establish(void) {
|
|||
@<Establish int-fiction@> =
|
||||
submodule_identity *interactive_fiction = Packaging::register_submodule(I"interactive_fiction");
|
||||
|
||||
H_BEGIN(HierarchyLocations::synoptic_submodule(I, interactive_fiction))
|
||||
H_C_T(INITIAL_MAX_SCORE_HL, I"INITIAL_MAX_SCORE")
|
||||
H_C_T(NO_DIRECTIONS_HL, I"No_Directions")
|
||||
H_F_T(SHOWSCENESTATUS_HL, I"show_scene_status_fn", I"ShowSceneStatus")
|
||||
H_F_T(DETECTSCENECHANGE_HL, I"detect_scene_change_fn", I"DetectSceneChange")
|
||||
H_C_T(MAP_STORAGE_HL, I"Map_Storage")
|
||||
H_C_T(INITIALSITUATION_HL, I"InitialSituation")
|
||||
H_BEGIN(HierarchyLocations::generic_submodule(I, interactive_fiction))
|
||||
H_C_T(PLAYER_OBJECT_INIS_HL, I"PLAYER_OBJECT_INIS")
|
||||
H_C_T(START_OBJECT_INIS_HL, I"START_OBJECT_INIS")
|
||||
H_C_T(START_ROOM_INIS_HL, I"START_ROOM_INIS")
|
||||
H_C_T(START_TIME_INIS_HL, I"START_TIME_INIS")
|
||||
H_C_T(DONE_INIS_HL, I"DONE_INIS")
|
||||
H_END
|
||||
|
||||
H_BEGIN(HierarchyLocations::synoptic_submodule(I, interactive_fiction))
|
||||
H_C_T(INITIAL_MAX_SCORE_HL, I"INITIAL_MAX_SCORE")
|
||||
H_C_T(NO_DIRECTIONS_HL, I"No_Directions")
|
||||
H_C_T(MAP_STORAGE_HL, I"Map_Storage")
|
||||
H_C_T(INITIALSITUATION_HL, I"InitialSituation")
|
||||
H_BEGIN_AP(DIRECTIONS_HAP, I"direction", I"_direction")
|
||||
H_C_G(DIRECTION_HL, I"DirectionObject")
|
||||
H_END
|
||||
|
@ -1157,6 +1171,18 @@ void Hierarchy::establish(void) {
|
|||
H_F_T(RULEPRINTINGRULE_HL, I"print_fn", I"RulePrintingRule")
|
||||
H_END
|
||||
|
||||
@h Scenes.
|
||||
|
||||
@e SHOWSCENESTATUS_HL
|
||||
@e DETECTSCENECHANGE_HL
|
||||
|
||||
@<Establish scenes@> =
|
||||
submodule_identity *scenes = Packaging::register_submodule(I"scenes");
|
||||
H_BEGIN(HierarchyLocations::synoptic_submodule(I, scenes))
|
||||
H_F_T(SHOWSCENESTATUS_HL, I"show_scene_status_fn", I"ShowSceneStatus")
|
||||
H_F_T(DETECTSCENECHANGE_HL, I"detect_scene_change_fn", I"DetectSceneChange")
|
||||
H_END
|
||||
|
||||
@h Tables.
|
||||
|
||||
@e TABLES_HAP
|
||||
|
|
|
@ -16,11 +16,28 @@ void RTInstances::initialise_icd(instance *I) {
|
|||
NounIdentifiers::noun_compose_identifier(I->icd.instance_package,
|
||||
I->as_noun, I->allocation_id);
|
||||
I->icd.instance_iname = NounIdentifiers::iname(I->as_noun);
|
||||
Hierarchy::apply_metadata_from_wording(I->icd.instance_package, INSTANCE_NAME_METADATA_HL,
|
||||
Nouns::nominative(I->as_noun, FALSE));
|
||||
I->icd.instance_emitted = FALSE;
|
||||
}
|
||||
|
||||
void RTInstances::compile_metadata(void) {
|
||||
instance *I;
|
||||
LOOP_OVER(I, instance) {
|
||||
Hierarchy::apply_metadata_from_wording(I->icd.instance_package,
|
||||
INSTANCE_NAME_METADATA_HL,
|
||||
Nouns::nominative(I->as_noun, FALSE));
|
||||
Hierarchy::apply_metadata_from_iname(I->icd.instance_package,
|
||||
INSTANCE_VALUE_METADATA_HL,
|
||||
I->icd.instance_iname);
|
||||
inter_name *kn_iname = Hierarchy::make_iname_in(INSTANCE_KIND_METADATA_HL,
|
||||
I->icd.instance_package);
|
||||
kind *K = Instances::to_kind(I);
|
||||
RTKinds::constant_from_strong_id(kn_iname, K);
|
||||
if ((K_scene) && (Kinds::eq(K, K_scene)))
|
||||
Hierarchy::apply_metadata_from_number(I->icd.instance_package,
|
||||
INSTANCE_IS_SCENE_METADATA_HL, 1);
|
||||
}
|
||||
}
|
||||
|
||||
inter_name *RTInstances::iname(instance *I) {
|
||||
if (I == NULL) return NULL;
|
||||
return I->icd.instance_iname;
|
||||
|
|
|
@ -34,76 +34,25 @@ The following generates the necessary code to (a) detect when a scene end
|
|||
occurs, and (b) act upon it. This is all handled by the following Inter
|
||||
function.
|
||||
|
||||
There is one argument, |chs|: the number of iterations so far. Iterations
|
||||
occur because each set of scene changes could change the circumstances in such
|
||||
a way that other scene changes are now required (through external conditions,
|
||||
not through anchors); we don't want this to lock up, so we will cap recursion.
|
||||
Within the routine, a second local variable, |ch|, is a flag indicating
|
||||
whether any change in status has or has not occurred.
|
||||
|
||||
There is no significance to the return value.
|
||||
|
||||
@d MAX_SCENE_CHANGE_ITERATION 20
|
||||
|
||||
=
|
||||
void RTScenes::DetectSceneChange_routine(void) {
|
||||
inter_name *iname = Hierarchy::find(DETECTSCENECHANGE_HL);
|
||||
packaging_state save = Functions::begin(iname);
|
||||
inter_symbol *chs_s =
|
||||
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 *CScene_l = EmitCode::reserve_label(I".CScene");
|
||||
|
||||
void RTScenes::compile_change_functions(void) {
|
||||
scene *sc;
|
||||
LOOP_OVER(sc, scene) @<Compile code detecting the ends of a specific scene@>;
|
||||
|
||||
EmitCode::place_label(CScene_l);
|
||||
@<Add the scene-change tail@>;
|
||||
|
||||
Functions::end(save);
|
||||
Hierarchy::make_available(iname);
|
||||
LOOP_OVER(sc, scene) {
|
||||
inter_name *iname =
|
||||
Hierarchy::make_iname_in(SCENE_CHANGE_FN_HL, RTInstances::package(sc->as_instance));
|
||||
packaging_state save = Functions::begin(iname);
|
||||
inter_symbol *ch_s =
|
||||
LocalVariables::new_internal_commented_as_symbol(I"ch", I"flag: change made");
|
||||
@<Compile code detecting the ends of a specific scene@>;
|
||||
EmitCode::rfalse();
|
||||
Functions::end(save);
|
||||
inter_name *md_iname = Hierarchy::make_iname_in(INSTANCE_SCF_METADATA_HL, RTInstances::package(sc->as_instance));
|
||||
Emit::iname_constant(md_iname, K_value, iname);
|
||||
}
|
||||
}
|
||||
|
||||
@<Add the scene-change tail@> =
|
||||
EmitCode::inv(IF_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::inv(GT_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::val_symbol(K_value, chs_s);
|
||||
EmitCode::val_number((inter_ti) MAX_SCENE_CHANGE_ITERATION);
|
||||
EmitCode::up();
|
||||
EmitCode::code();
|
||||
EmitCode::down();
|
||||
EmitCode::inv(PRINT_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::val_text(I">--> The scene change machinery is stuck.\n");
|
||||
EmitCode::up();
|
||||
EmitCode::rtrue();
|
||||
EmitCode::up();
|
||||
EmitCode::up();
|
||||
|
||||
EmitCode::inv(IF_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::inv(GT_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::val_symbol(K_value, ch_s);
|
||||
EmitCode::val_number(0);
|
||||
EmitCode::up();
|
||||
EmitCode::code();
|
||||
EmitCode::down();
|
||||
EmitCode::call(iname);
|
||||
EmitCode::down();
|
||||
EmitCode::inv(PREINCREMENT_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::ref_symbol(K_value, chs_s);
|
||||
EmitCode::up();
|
||||
EmitCode::up();
|
||||
EmitCode::up();
|
||||
EmitCode::up();
|
||||
|
||||
EmitCode::rfalse();
|
||||
|
||||
@ Recall that ends numbered 1, 2, 3, ... are all ways for the scene to end,
|
||||
so they are only checked if its status is currently running; end 0 is the
|
||||
beginning, checked only if it isn't. We give priority to the higher end
|
||||
|
@ -124,7 +73,7 @@ numbers so that more abstruse ways to end take precedence over less.
|
|||
EmitCode::code();
|
||||
EmitCode::down();
|
||||
for (int end=sc->no_ends-1; end>=1; end--)
|
||||
RTScenes::test_scene_end(sc, end, ch_s, CScene_l);
|
||||
RTScenes::test_scene_end(sc, end, ch_s);
|
||||
EmitCode::up();
|
||||
EmitCode::up();
|
||||
|
||||
|
@ -141,7 +90,7 @@ numbers so that more abstruse ways to end take precedence over less.
|
|||
EmitCode::up();
|
||||
EmitCode::code();
|
||||
EmitCode::down();
|
||||
RTScenes::test_scene_end(sc, 0, ch_s, CScene_l);
|
||||
RTScenes::test_scene_end(sc, 0, ch_s);
|
||||
EmitCode::up();
|
||||
EmitCode::up();
|
||||
|
||||
|
@ -152,7 +101,7 @@ two, because the third way will be taken care of by the consequences code
|
|||
below.
|
||||
|
||||
=
|
||||
void RTScenes::test_scene_end(scene *sc, int end, inter_symbol *ch_s, inter_symbol *CScene_l) {
|
||||
void RTScenes::test_scene_end(scene *sc, int end, inter_symbol *ch_s) {
|
||||
if ((end == 0) && (sc->start_of_play)) {
|
||||
EmitCode::inv(IF_BIP);
|
||||
EmitCode::down();
|
||||
|
@ -217,10 +166,7 @@ instruction because we're not compiling a loop.)
|
|||
EmitCode::val_number(1);
|
||||
EmitCode::up();
|
||||
RTScenes::compile_scene_end(sc, end);
|
||||
EmitCode::inv(JUMP_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::lab(CScene_l);
|
||||
EmitCode::up();
|
||||
EmitCode::rtrue();
|
||||
EmitCode::up();
|
||||
EmitCode::up();
|
||||
|
||||
|
@ -461,15 +407,16 @@ scene status at the moment the command is typed, and the following code is
|
|||
what handles this.
|
||||
|
||||
=
|
||||
void RTScenes::ShowSceneStatus_routine(void) {
|
||||
inter_name *iname = Hierarchy::find(SHOWSCENESTATUS_HL);
|
||||
packaging_state save = Functions::begin(iname);
|
||||
EmitCode::inv(IFDEBUG_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::code();
|
||||
void RTScenes::compile_show_status_functions(void) {
|
||||
scene *sc;
|
||||
LOOP_OVER(sc, scene) {
|
||||
inter_name *iname =
|
||||
Hierarchy::make_iname_in(SCENE_STATUS_FN_HL, RTInstances::package(sc->as_instance));
|
||||
packaging_state save = Functions::begin(iname);
|
||||
EmitCode::inv(IFDEBUG_BIP);
|
||||
EmitCode::down();
|
||||
scene *sc;
|
||||
LOOP_OVER(sc, scene) {
|
||||
EmitCode::code();
|
||||
EmitCode::down();
|
||||
wording NW = Instances::get_name(sc->as_instance, FALSE);
|
||||
|
||||
EmitCode::inv(IFELSE_BIP);
|
||||
|
@ -492,11 +439,12 @@ void RTScenes::ShowSceneStatus_routine(void) {
|
|||
@<Show status of this non-running scene@>;
|
||||
EmitCode::up();
|
||||
EmitCode::up();
|
||||
}
|
||||
EmitCode::up();
|
||||
EmitCode::up();
|
||||
EmitCode::up();
|
||||
Functions::end(save);
|
||||
Hierarchy::make_available(iname);
|
||||
Functions::end(save);
|
||||
inter_name *md_iname = Hierarchy::make_iname_in(INSTANCE_SSF_METADATA_HL, RTInstances::package(sc->as_instance));
|
||||
Emit::iname_constant(md_iname, K_value, iname);
|
||||
}
|
||||
}
|
||||
|
||||
@<Show status of this running scene@> =
|
||||
|
@ -638,3 +586,33 @@ void RTScenes::emit_during_clause(parse_node *spec) {
|
|||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@
|
||||
|
||||
=
|
||||
void RTScenes::compile_synoptic_resources(void) {
|
||||
@<Provide placeholder for the SHOWSCENESTATUS function@>;
|
||||
@<Provide placeholder for the DETECTSCENECHANGE function@>;
|
||||
}
|
||||
|
||||
@<Provide placeholder for the SHOWSCENESTATUS function@> =
|
||||
inter_name *iname = Hierarchy::find(SHOWSCENESTATUS_HL);
|
||||
Produce::annotate_i(iname, SYNOPTIC_IANN, SHOWSCENESTATUS_SYNID);
|
||||
packaging_state save = Functions::begin(iname);
|
||||
EmitCode::comment(I"This function is consolidated");
|
||||
Functions::end(save);
|
||||
Hierarchy::make_available(iname);
|
||||
|
||||
@<Provide placeholder for the DETECTSCENECHANGE function@> =
|
||||
inter_name *iname = Hierarchy::find(DETECTSCENECHANGE_HL);
|
||||
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));
|
||||
|
||||
EmitCode::comment(I"This function is consolidated");
|
||||
Functions::end(save);
|
||||
Hierarchy::make_available(iname);
|
||||
|
|
20
inter/codegen-module/Chapter 3/Instances.w
Normal file
20
inter/codegen-module/Chapter 3/Instances.w
Normal file
|
@ -0,0 +1,20 @@
|
|||
[SynopticInstances::] Instances.
|
||||
|
||||
To renumber the instances and construct suitable functions and arrays.
|
||||
|
||||
@ Before this runs, instance packages are scattered all over the Inter tree.
|
||||
|
||||
As this is called, //Synoptic Utilities// has already formed a list |instance_nodes|
|
||||
of packages of type |_instance|.
|
||||
|
||||
=
|
||||
void SynopticInstances::renumber(inter_tree *I, inter_tree_location_list *instance_nodes) {
|
||||
if (TreeLists::len(instance_nodes) > 0) {
|
||||
TreeLists::sort(instance_nodes, Synoptic::module_order);
|
||||
// for (int i=0; i<TreeLists::len(instance_nodes); i++) {
|
||||
// inter_package *pack = Inter::Package::defined_by_frame(instance_nodes->list[i].node);
|
||||
// inter_tree_node *D = Synoptic::get_definition(pack, I"scene_id");
|
||||
// D->W.data[DATA_CONST_IFLD+1] = (inter_ti) i;
|
||||
// }
|
||||
}
|
||||
}
|
123
inter/codegen-module/Chapter 3/Scenes.w
Normal file
123
inter/codegen-module/Chapter 3/Scenes.w
Normal file
|
@ -0,0 +1,123 @@
|
|||
[SynopticScenes::] Scenes.
|
||||
|
||||
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.
|
||||
|
||||
As this is called, //Synoptic Utilities// has already formed a list |property_nodes|
|
||||
of packages of type |_activity|.
|
||||
|
||||
=
|
||||
void SynopticScenes::renumber(inter_tree *I, inter_tree_location_list *scene_nodes) {
|
||||
if (TreeLists::len(scene_nodes) > 0) {
|
||||
TreeLists::sort(scene_nodes, Synoptic::module_order);
|
||||
for (int i=0; i<TreeLists::len(scene_nodes); i++) {
|
||||
inter_package *pack = Inter::Package::defined_by_frame(scene_nodes->list[i].node);
|
||||
text_stream *name = Metadata::read_optional_textual(pack, I"^name");
|
||||
LOG("scene %d: %S\n", i, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ There are also resources to create in the |synoptic| module:
|
||||
|
||||
@e SHOWSCENESTATUS_SYNID
|
||||
@e DETECTSCENECHANGE_SYNID
|
||||
|
||||
=
|
||||
int SynopticScenes::redefine(inter_tree *I, inter_tree_node *P, inter_symbol *con_s, int synid) {
|
||||
inter_package *pack = Inter::Packages::container(P);
|
||||
inter_bookmark IBM = Inter::Bookmarks::at_end_of_this_package(pack);
|
||||
switch (synid) {
|
||||
case SHOWSCENESTATUS_SYNID: {
|
||||
packaging_state save = Synoptic::begin_redefining_function(&IBM, I, P);
|
||||
@<Add a body of code to the SHOWSCENESTATUS function@>;
|
||||
Synoptic::end_redefining_function(I, save);
|
||||
break;
|
||||
}
|
||||
case DETECTSCENECHANGE_SYNID: {
|
||||
packaging_state save = Synoptic::begin_redefining_function(&IBM, I, P);
|
||||
@<Add a body of code to the DETECTSCENECHANGE function@>;
|
||||
Synoptic::end_redefining_function(I, save);
|
||||
break;
|
||||
}
|
||||
default: return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@<Add a body of code to the SHOWSCENESTATUS function@> =
|
||||
for (int i=0; i<TreeLists::len(scene_nodes); i++) {
|
||||
inter_package *pack = Inter::Package::defined_by_frame(scene_nodes->list[i].node);
|
||||
inter_symbol *ssf_s = Metadata::read_symbol(pack, I"^scene_status_fn");
|
||||
Produce::inv_call(I, ssf_s);
|
||||
}
|
||||
|
||||
@ There is one argument, |chs|: the number of iterations so far. Iterations
|
||||
occur because each set of scene changes could change the circumstances in such
|
||||
a way that other scene changes are now required (through external conditions,
|
||||
not through anchors); we don't want this to lock up, so we will cap recursion.
|
||||
Within the routine, a second local variable, |ch|, is a flag indicating
|
||||
whether any change in status has or has not occurred.
|
||||
|
||||
|
||||
@d MAX_SCENE_CHANGE_ITERATION 20
|
||||
|
||||
@<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);
|
||||
for (int i=0; i<TreeLists::len(scene_nodes); i++) {
|
||||
inter_package *pack = Inter::Package::defined_by_frame(scene_nodes->list[i].node);
|
||||
inter_symbol *scf_s = Metadata::read_symbol(pack, I"^scene_change_fn");
|
||||
Produce::inv_primitive(I, IF_BIP);
|
||||
Produce::down(I);
|
||||
Produce::inv_call(I, scf_s);
|
||||
Produce::code(I);
|
||||
Produce::down(I);
|
||||
Produce::inv_primitive(I, JUMP_BIP);
|
||||
Produce::down(I);
|
||||
Produce::lab(I, CScene_l);
|
||||
Produce::up(I);
|
||||
Produce::up(I);
|
||||
Produce::up(I);
|
||||
}
|
||||
Produce::rfalse(I);
|
||||
|
||||
Produce::place_label(I, CScene_l);
|
||||
|
||||
Produce::inv_primitive(I, IF_BIP);
|
||||
Produce::down(I);
|
||||
Produce::inv_primitive(I, GT_BIP);
|
||||
Produce::down(I);
|
||||
Produce::val_symbol(I, K_value, chs_s);
|
||||
Produce::val(I, K_value, LITERAL_IVAL, (inter_ti) MAX_SCENE_CHANGE_ITERATION);
|
||||
Produce::up(I);
|
||||
Produce::code(I);
|
||||
Produce::down(I);
|
||||
Produce::inv_primitive(I, PRINT_BIP);
|
||||
Produce::down(I);
|
||||
Produce::val_text(I, I">--> The scene change machinery is stuck.\n");
|
||||
Produce::up(I);
|
||||
Produce::rtrue(I);
|
||||
Produce::up(I);
|
||||
Produce::up(I);
|
||||
Produce::inv_primitive(I, PREINCREMENT_BIP);
|
||||
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);
|
||||
Produce::up(I);
|
|
@ -26,6 +26,8 @@ inter_tree_location_list *table_column_nodes = NULL;
|
|||
inter_tree_location_list *table_column_usage_nodes = NULL;
|
||||
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;
|
||||
|
||||
int Synoptic::go(pipeline_step *step) {
|
||||
text_nodes = TreeLists::new();
|
||||
|
@ -42,6 +44,8 @@ int Synoptic::go(pipeline_step *step) {
|
|||
table_column_usage_nodes = TreeLists::new();
|
||||
past_tense_action_nodes = TreeLists::new();
|
||||
past_tense_condition_nodes = TreeLists::new();
|
||||
instance_nodes = TreeLists::new();
|
||||
scene_nodes = TreeLists::new();
|
||||
InterTree::traverse(step->repository, Synoptic::visitor, NULL, NULL, 0);
|
||||
SynopticText::alphabetise(step->repository, text_nodes);
|
||||
|
||||
|
@ -55,6 +59,8 @@ int Synoptic::go(pipeline_step *step) {
|
|||
SynopticRelations::renumber(step->repository, relation_nodes);
|
||||
SynopticTables::renumber(step->repository, table_nodes);
|
||||
SynopticChronology::renumber(step->repository, past_tense_action_nodes);
|
||||
SynopticInstances::renumber(step->repository, instance_nodes);
|
||||
SynopticScenes::renumber(step->repository, scene_nodes);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -96,6 +102,12 @@ void Synoptic::visitor(inter_tree *I, inter_tree_node *P, void *state) {
|
|||
TreeLists::add(past_tense_action_nodes, P);
|
||||
if (ptype == PackageTypes::get(I, I"_past_condition"))
|
||||
TreeLists::add(past_tense_condition_nodes, P);
|
||||
if (ptype == PackageTypes::get(I, I"_instance")) {
|
||||
TreeLists::add(instance_nodes, P);
|
||||
inter_package *pack = Inter::Package::defined_by_frame(P);
|
||||
if (Metadata::exists(pack, I"^is_scene"))
|
||||
TreeLists::add(scene_nodes, P);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -120,6 +132,7 @@ void Synoptic::syn_visitor(inter_tree *I, inter_tree_node *P, void *state) {
|
|||
if (SynopticRelations::redefine(I, P, con_s, synid)) return;
|
||||
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;
|
||||
LOG("Couldn't consolidate $3\n", con_s);
|
||||
internal_error("symbol cannot be consolidated");
|
||||
}
|
||||
|
|
|
@ -33,10 +33,12 @@ Chapter 3: Synoptic Resources
|
|||
Rules
|
||||
Activities
|
||||
Actions
|
||||
Instances
|
||||
Properties
|
||||
Relations
|
||||
Tables
|
||||
Chronology
|
||||
Scenes
|
||||
|
||||
Chapter 4: Inter to Final Code
|
||||
Code Generation
|
||||
|
|
Loading…
Reference in a new issue