1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-05-19 09:28:51 +03:00
inform7/docs/runtime-module/2-ec.html
2024-05-12 12:12:24 +01:00

349 lines
132 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Emit Code</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="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
<li><a href="../inform7n.html">inform7</a></li>
<li><a href="../intern.html">inter</a></li>
<li><a href="../services.html">services</a></li>
<li><a href="../secrets.html">secrets</a></li>
</ul><h2>Other Tools</h2><ul>
<li><a href="../inblorbn.html">inblorb</a></li>
<li><a href="../indocn.html">indoc</a></li>
<li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li>
</ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="../../../inweb/index.html">inweb</a></li>
<li><a href="../../../intest/index.html">intest</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Emit Code' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../inform7n.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#2">Chapter 2: Emission</a></li><li><b>Emit Code</b></li></ul></div>
<p class="purpose">Here is how bytecode for instructions inside functions is emitted.</p>
<ul class="toc"><li><a href="2-ec.html#SP1">&#167;1. Introduction</a></li><li><a href="2-ec.html#SP2">&#167;2. Where bytecode comes out</a></li><li><a href="2-ec.html#SP5">&#167;5. Structural</a></li><li><a href="2-ec.html#SP6">&#167;6. Comments</a></li><li><a href="2-ec.html#SP7">&#167;7. Provenance markers</a></li><li><a href="2-ec.html#SP8">&#167;8. In value context</a></li><li><a href="2-ec.html#SP9">&#167;9. Either/or property testing</a></li><li><a href="2-ec.html#SP10">&#167;10. Casts</a></li><li><a href="2-ec.html#SP13">&#167;13. In reference context</a></li><li><a href="2-ec.html#SP14">&#167;14. Invocations</a></li><li><a href="2-ec.html#SP17">&#167;17. Labels</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Introduction. </b>Many sections of <a href="index.html" class="internal">runtime</a> need to create functions by explicitly giving
their bytecode. This is quite verbose, but with practice easy enough to read.
For example, here's bytecode equivalent to <span class="extract"><span class="extract-syntax">return 13</span></span>:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="function-syntax">EmitCode::inv</span><span class="plain-syntax">(</span><span class="identifier-syntax">RETURN_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="function-syntax">EmitCode::down</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="function-syntax">EmitCode::val_number</span><span class="plain-syntax">(13);</span>
<span class="plain-syntax"> </span><span class="function-syntax">EmitCode::up</span><span class="plain-syntax">();</span>
</pre>
<p class="commentary">We conventionally indent this code to reflect the structure of what is being
generated, so that the source code in this module looks like the Inter tree
structure which emerges.
</p>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. Where bytecode comes out. </b>We are generating a hierarchical structure and not a stream, so we need the
ability to move the point at which new opcodes are being spawned. This is
that point
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_bookmark</span><span class="plain-syntax"> *</span><span class="function-syntax">EmitCode::at</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">EmitCode::at</span></span>:<br/><a href="2-ec.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Produce::at</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>These should always be used in ways guaranteed to match:
</p>
<ul class="items"><li>&#9679; <a href="2-ec.html#SP3" class="internal">EmitCode::down</a> shifts us so that we are now creating bytecode below the
instruction last emitted, not after it.
</li><li>&#9679; <a href="2-ec.html#SP3" class="internal">EmitCode::up</a> then returns us back to where we were.
</li></ul>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::up</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">EmitCode::up</span></span>:<br/><a href="2-ec.html#SP9">&#167;9</a><br/>Shared Variables - <a href="2-sv.html#SP1">&#167;1</a>, <a href="2-sv.html#SP1_1">&#167;1.1</a>, <a href="2-sv.html#SP1_2">&#167;1.2</a><br/>The Heap - <a href="2-th.html#SP5">&#167;5</a><br/>Showme Command - <a href="2-sc.html#SP2">&#167;2</a>, <a href="2-sc.html#SP3">&#167;3</a>, <a href="2-sc.html#SP4">&#167;4</a>, <a href="2-sc.html#SP4_2">&#167;4.2</a>, <a href="2-sc.html#SP6_1">&#167;6.1</a>, <a href="2-sc.html#SP6_1_1">&#167;6.1.1</a>, <a href="2-sc.html#SP6_1_1_1">&#167;6.1.1.1</a>, <a href="2-sc.html#SP6_2">&#167;6.2</a>, <a href="2-sc.html#SP6_2_1">&#167;6.2.1</a><br/>Short Names - <a href="2-sn.html#SP4">&#167;4</a>, <a href="2-sn.html#SP4_1">&#167;4.1</a>, <a href="2-sn.html#SP4_2">&#167;4.2</a><br/>Text Substitutions - <a href="4-ts.html#SP2_1">&#167;2.1</a>, <a href="4-ts.html#SP7_2">&#167;7.2</a><br/>Responses - <a href="4-rsp.html#SP4">&#167;4</a>, <a href="4-rsp.html#SP6">&#167;6</a>, <a href="4-rsp.html#SP7_1">&#167;7.1</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Group Together - <a href="4-gt.html#SP3">&#167;3</a><br/>Looping Over Scope - <a href="4-los.html#SP3">&#167;3</a><br/>Adjectives - <a href="5-adj.html#SP6_1_2">&#167;6.1.2</a>, <a href="5-adj.html#SP8">&#167;8</a>, <a href="5-adj.html#SP9">&#167;9</a>, <a href="5-adj.html#SP14">&#167;14</a>, <a href="5-adj.html#SP15">&#167;15</a><br/>Chronology - <a href="5-chr.html#SP3_4">&#167;3.4</a>, <a href="5-chr.html#SP4_1">&#167;4.1</a>, <a href="5-chr.html#SP5">&#167;5</a>, <a href="5-chr.html#SP7_2">&#167;7.2</a>, <a href="5-chr.html#SP8">&#167;8</a><br/>Conjugations - <a href="5-cnj.html#SP7">&#167;7</a>, <a href="5-cnj.html#SP8">&#167;8</a>, <a href="5-cnj.html#SP12_1">&#167;12.1</a>, <a href="5-cnj.html#SP7_2">&#167;7.2</a>, <a href="5-cnj.html#SP7_2_1">&#167;7.2.1</a>, <a href="5-cnj.html#SP7_2_2">&#167;7.2.2</a>, <a href="5-cnj.html#SP13">&#167;13</a><br/>Instances - <a href="5-ins.html#SP5">&#167;5</a><br/>Backdrop Instances - <a href="5-bi.html#SP2_1">&#167;2.1</a><br/>Door Instances - <a href="5-di.html#SP3">&#167;3</a>, <a href="5-di.html#SP5">&#167;5</a><br/>Region Instances - <a href="5-ri.html#SP2">&#167;2</a><br/>Scene Instances - <a href="5-si.html#SP3_1">&#167;3.1</a>, <a href="5-si.html#SP4">&#167;4</a>, <a href="5-si.html#SP4_2">&#167;4.2</a>, <a href="5-si.html#SP4_3">&#167;4.3</a>, <a href="5-si.html#SP6_1">&#167;6.1</a>, <a href="5-si.html#SP6_2">&#167;6.2</a>, <a href="5-si.html#SP6_3">&#167;6.3</a>, <a href="5-si.html#SP6_4">&#167;6.4</a>, <a href="5-si.html#SP6_5">&#167;6.5</a>, <a href="5-si.html#SP7">&#167;7</a>, <a href="5-si.html#SP7_1">&#167;7.1</a>, <a href="5-si.html#SP7_2">&#167;7.2</a>, <a href="5-si.html#SP7_2_1">&#167;7.2.1</a>, <a href="5-si.html#SP8">&#167;8</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2_7_1">&#167;2.7.1</a>, <a href="5-dbi.html#SP2_7_2">&#167;2.7.2</a>, <a href="5-dbi.html#SP2_7_2_1">&#167;2.7.2.1</a>, <a href="5-dbi.html#SP2_7_3_1">&#167;2.7.3.1</a>, <a href="5-dbi.html#SP2_7_4">&#167;2.7.4</a>, <a href="5-dbi.html#SP2_8_1">&#167;2.8.1</a><br/>Dialogue - <a href="5-dli.html#SP3_10_1">&#167;3.10.1</a>, <a href="5-dli.html#SP3_13">&#167;3.13</a>, <a href="5-dli.html#SP3_14">&#167;3.14</a>, <a href="5-dli.html#SP3_14_3">&#167;3.14.3</a>, <a href="5-dli.html#SP5">&#167;5</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_6_1">&#167;3.6.1</a>, <a href="5-dci.html#SP3_7">&#167;3.7</a>, <a href="5-dci.html#SP3_8">&#167;3.8</a><br/>Rules - <a href="5-rls.html#SP12_4">&#167;12.4</a>, <a href="5-rls.html#SP14">&#167;14</a>, <a href="5-rls.html#SP14_2">&#167;14.2</a>, <a href="5-rls.html#SP15">&#167;15</a>, <a href="5-rls.html#SP15_1">&#167;15.1</a>, <a href="5-rls.html#SP17_3">&#167;17.3</a>, <a href="5-rls.html#SP17_4">&#167;17.4</a>, <a href="5-rls.html#SP15_2_1">&#167;15.2.1</a>, <a href="5-rls.html#SP17_2_1">&#167;17.2.1</a><br/>Rulebooks - <a href="5-rlb.html#SP8_4_1_1">&#167;8.4.1.1</a>, <a href="5-rlb.html#SP8_4_1_2">&#167;8.4.1.2</a>, <a href="5-rlb.html#SP8_4_1_3">&#167;8.4.1.3</a>, <a href="5-rlb.html#SP8_4_1_4">&#167;8.4.1.4</a>, <a href="5-rlb.html#SP8_4_1_5">&#167;8.4.1.5</a>, <a href="5-rlb.html#SP8_4_1_3_1">&#167;8.4.1.3.1</a>, <a href="5-rlb.html#SP16">&#167;16</a><br/>Variables - <a href="5-vrb.html#SP8">&#167;8</a>, <a href="5-vrb.html#SP14_1">&#167;14.1</a><br/>Relations - <a href="5-rlt.html#SP6_1">&#167;6.1</a>, <a href="5-rlt.html#SP6_2">&#167;6.2</a>, <a href="5-rlt.html#SP6_4">&#167;6.4</a>, <a href="5-rlt.html#SP6_4_1">&#167;6.4.1</a>, <a href="5-rlt.html#SP6_4_4">&#167;6.4.4</a>, <a href="5-rlt.html#SP6_4_5">&#167;6.4.5</a>, <a href="5-rlt.html#SP6_4_5_1">&#167;6.4.5.1</a>, <a href="5-rlt.html#SP6_4_6">&#167;6.4.6</a>, <a href="5-rlt.html#SP6_4_7">&#167;6.4.7</a>, <a href="5-rlt.html#SP6_4_8">&#167;6.4.8</a>, <a href="5-rlt.html#SP6_4_9">&#167;6.4.9</a>, <a href="5-rlt.html#SP6_4_10">&#167;6.4.10</a>, <a href="5-rlt.html#SP6_4_11">&#167;6.4.11</a>, <a href="5-rlt.html#SP6_4_12">&#167;6.4.12</a>, <a href="5-rlt.html#SP6_4_9_1">&#167;6.4.9.1</a>, <a href="5-rlt.html#SP6_4_10_1">&#167;6.4.10.1</a>, <a href="5-rlt.html#SP6_4_12_1">&#167;6.4.12.1</a>, <a href="5-rlt.html#SP19_1">&#167;19.1</a>, <a href="5-rlt.html#SP19_2">&#167;19.2</a>, <a href="5-rlt.html#SP19_3">&#167;19.3</a>, <a href="5-rlt.html#SP19_4">&#167;19.4</a>, <a href="5-rlt.html#SP19_5">&#167;19.5</a>, <a href="5-rlt.html#SP20">&#167;20</a>, <a href="5-rlt.html#SP21">&#167;21</a><br/>Literal Patterns - <a href="5-lp.html#SP4_1_1">&#167;4.1.1</a>, <a href="5-lp.html#SP4_1_1_1">&#167;4.1.1.1</a>, <a href="5-lp.html#SP4_1_1_2">&#167;4.1.1.2</a>, <a href="5-lp.html#SP4_1_1_3">&#167;4.1.1.3</a>, <a href="5-lp.html#SP4_1_1_3_1">&#167;4.1.1.3.1</a>, <a href="5-lp.html#SP4_1_1_3_2">&#167;4.1.1.3.2</a>, <a href="5-lp.html#SP4_1_1_3_3">&#167;4.1.1.3.3</a>, <a href="5-lp.html#SP4_1_1_3_1_1">&#167;4.1.1.3.1.1</a>, <a href="5-lp.html#SP4_1_1_4">&#167;4.1.1.4</a>, <a href="5-lp.html#SP4_2">&#167;4.2</a>, <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>, <a href="5-lp.html#SP4_2_1_1">&#167;4.2.1.1</a>, <a href="5-lp.html#SP4_2_1_2">&#167;4.2.1.2</a>, <a href="5-lp.html#SP4_2_1_3">&#167;4.2.1.3</a>, <a href="5-lp.html#SP4_2_1_3_1">&#167;4.2.1.3.1</a>, <a href="5-lp.html#SP4_2_1_3_1_1">&#167;4.2.1.3.1.1</a>, <a href="5-lp.html#SP4_2_1_3_2">&#167;4.2.1.3.2</a>, <a href="5-lp.html#SP4_2_1_3_2_1">&#167;4.2.1.3.2.1</a>, <a href="5-lp.html#SP4_2_1_3_2_2">&#167;4.2.1.3.2.2</a>, <a href="5-lp.html#SP4_2_1_2_1">&#167;4.2.1.2.1</a>, <a href="5-lp.html#SP4_2_1_2_2">&#167;4.2.1.2.2</a>, <a href="5-lp.html#SP5">&#167;5</a>, <a href="5-lp.html#SP5_2">&#167;5.2</a>, <a href="5-lp.html#SP7_1">&#167;7.1</a>, <a href="5-lp.html#SP7_2">&#167;7.2</a>, <a href="5-lp.html#SP7_3">&#167;7.3</a><br/>Kind Constructors - <a href="5-kc.html#SP32_3_6_1">&#167;32.3.6.1</a>, <a href="5-kc.html#SP32_3_6_2">&#167;32.3.6.2</a>, <a href="5-kc.html#SP32_3_7">&#167;32.3.7</a>, <a href="5-kc.html#SP32_3_7_1">&#167;32.3.7.1</a>, <a href="5-kc.html#SP32_3_8">&#167;32.3.8</a>, <a href="5-kc.html#SP32_3_24">&#167;32.3.24</a>, <a href="5-kc.html#SP32_3_26">&#167;32.3.26</a>, <a href="5-kc.html#SP32_3_27">&#167;32.3.27</a>, <a href="5-kc.html#SP32_3_28">&#167;32.3.28</a><br/>Kind IDs - <a href="5-ki.html#SP10">&#167;10</a><br/>Actions - <a href="5-act2.html#SP8_5">&#167;8.5</a>, <a href="5-act2.html#SP8_6">&#167;8.6</a>, <a href="5-act2.html#SP8_6_1">&#167;8.6.1</a>, <a href="5-act2.html#SP9">&#167;9</a><br/>Named Action Patterns - <a href="5-nap.html#SP3">&#167;3</a><br/>Command Grammars - <a href="7-cg.html#SP10">&#167;10</a>, <a href="7-cg.html#SP12">&#167;12</a>, <a href="7-cg.html#SP13">&#167;13</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_2">&#167;6.2</a>, <a href="7-cgl.html#SP6_5">&#167;6.5</a>, <a href="7-cgl.html#SP6_6">&#167;6.6</a>, <a href="7-cgl.html#SP6_8">&#167;6.8</a>, <a href="7-cgl.html#SP7">&#167;7</a>, <a href="7-cgl.html#SP9">&#167;9</a>, <a href="7-cgl.html#SP10">&#167;10</a>, <a href="7-cgl.html#SP11">&#167;11</a>, <a href="7-cgl.html#SP13">&#167;13</a>, <a href="7-cgl.html#SP14_3">&#167;14.3</a>, <a href="7-cgl.html#SP14_5">&#167;14.5</a>, <a href="7-cgl.html#SP14_5_1">&#167;14.5.1</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_1">&#167;1.1</a>, <a href="7-cgt.html#SP1_1_1">&#167;1.1.1</a>, <a href="7-cgt.html#SP1_1_1_1">&#167;1.1.1.1</a>, <a href="7-cgt.html#SP1_2">&#167;1.2</a>, <a href="7-cgt.html#SP1_2_1">&#167;1.2.1</a>, <a href="7-cgt.html#SP1_2_2">&#167;1.2.2</a>, <a href="7-cgt.html#SP1_2_3">&#167;1.2.3</a>, <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_5">&#167;1.2.5</a>, <a href="7-cgt.html#SP1_2_6">&#167;1.2.6</a>, <a href="7-cgt.html#SP1_2_7">&#167;1.2.7</a>, <a href="7-cgt.html#SP1_2_8">&#167;1.2.8</a>, <a href="7-cgt.html#SP1_2_9">&#167;1.2.9</a>, <a href="7-cgt.html#SP1_2_10_1_1">&#167;1.2.10.1.1</a>, <a href="7-cgt.html#SP1_2_10_2_1">&#167;1.2.10.2.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">&#167;1.2.10.2.2</a>, <a href="7-cgt.html#SP1_2_10_1_1_1">&#167;1.2.10.1.1.1</a>, <a href="7-cgt.html#SP1_3">&#167;1.3</a>, <a href="7-cgt.html#SP1_4_1">&#167;1.4.1</a>, <a href="7-cgt.html#SP1_4_2">&#167;1.4.2</a>, <a href="7-cgt.html#SP1_4_3">&#167;1.4.3</a>, <a href="7-cgt.html#SP1_5">&#167;1.5</a>, <a href="7-cgt.html#SP1_6">&#167;1.6</a><br/>Kind GPRs - <a href="7-kg.html#SP1_1">&#167;1.1</a>, <a href="7-kg.html#SP1_2">&#167;1.2</a>, <a href="7-kg.html#SP4">&#167;4</a>, <a href="7-kg.html#SP4_1">&#167;4.1</a>, <a href="7-kg.html#SP4_3">&#167;4.3</a>, <a href="7-kg.html#SP4_4">&#167;4.4</a>, <a href="7-kg.html#SP5_1_1_1">&#167;5.1.1.1</a>, <a href="7-kg.html#SP5_1_1_2">&#167;5.1.1.2</a>, <a href="7-kg.html#SP5_1_1_3">&#167;5.1.1.3</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_1">&#167;3.1</a>, <a href="7-nft.html#SP3_2">&#167;3.2</a>, <a href="7-nft.html#SP3_3">&#167;3.3</a>, <a href="7-nft.html#SP4">&#167;4</a><br/>Parse Name Properties - <a href="7-pnp.html#SP4">&#167;4</a>, <a href="7-pnp.html#SP4_1">&#167;4.1</a>, <a href="7-pnp.html#SP4_2">&#167;4.2</a>, <a href="7-pnp.html#SP4_3">&#167;4.3</a>, <a href="7-pnp.html#SP4_3_1">&#167;4.3.1</a>, <a href="7-pnp.html#SP4_4">&#167;4.4</a>, <a href="7-pnp.html#SP4_5">&#167;4.5</a>, <a href="7-pnp.html#SP5">&#167;5</a>, <a href="7-pnp.html#SP6">&#167;6</a>, <a href="7-pnp.html#SP6_2">&#167;6.2</a>, <a href="7-pnp.html#SP6_3">&#167;6.3</a>, <a href="7-pnp.html#SP6_4">&#167;6.4</a>, <a href="7-pnp.html#SP6_5">&#167;6.5</a>, <a href="7-pnp.html#SP6_6">&#167;6.6</a>, <a href="7-pnp.html#SP7_1">&#167;7.1</a>, <a href="7-pnp.html#SP8">&#167;8</a>, <a href="7-pnp.html#SP8_1">&#167;8.1</a>, <a href="7-pnp.html#SP9">&#167;9</a>, <a href="7-pnp.html#SP10">&#167;10</a>, <a href="7-pnp.html#SP10_1">&#167;10.1</a>, <a href="7-pnp.html#SP10_2">&#167;10.2</a>, <a href="7-pnp.html#SP11">&#167;11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::down</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">EmitCode::down</span></span>:<br/><a href="2-ec.html#SP9">&#167;9</a>, <a href="2-ec.html#SP12">&#167;12</a><br/>Shared Variables - <a href="2-sv.html#SP1">&#167;1</a>, <a href="2-sv.html#SP1_1">&#167;1.1</a>, <a href="2-sv.html#SP1_2">&#167;1.2</a><br/>The Heap - <a href="2-th.html#SP5">&#167;5</a><br/>Showme Command - <a href="2-sc.html#SP2">&#167;2</a>, <a href="2-sc.html#SP3">&#167;3</a>, <a href="2-sc.html#SP4">&#167;4</a>, <a href="2-sc.html#SP4_2">&#167;4.2</a>, <a href="2-sc.html#SP6_1">&#167;6.1</a>, <a href="2-sc.html#SP6_1_1">&#167;6.1.1</a>, <a href="2-sc.html#SP6_1_1_1">&#167;6.1.1.1</a>, <a href="2-sc.html#SP6_2">&#167;6.2</a>, <a href="2-sc.html#SP6_2_1">&#167;6.2.1</a><br/>Short Names - <a href="2-sn.html#SP4">&#167;4</a>, <a href="2-sn.html#SP4_1">&#167;4.1</a>, <a href="2-sn.html#SP4_2">&#167;4.2</a><br/>Text Substitutions - <a href="4-ts.html#SP2_1">&#167;2.1</a>, <a href="4-ts.html#SP7_2">&#167;7.2</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a>, <a href="4-rsp.html#SP7_1">&#167;7.1</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Group Together - <a href="4-gt.html#SP3">&#167;3</a><br/>Looping Over Scope - <a href="4-los.html#SP3">&#167;3</a><br/>Adjectives - <a href="5-adj.html#SP6_1_2">&#167;6.1.2</a>, <a href="5-adj.html#SP8">&#167;8</a>, <a href="5-adj.html#SP9">&#167;9</a>, <a href="5-adj.html#SP14">&#167;14</a>, <a href="5-adj.html#SP15">&#167;15</a><br/>Chronology - <a href="5-chr.html#SP3_4">&#167;3.4</a>, <a href="5-chr.html#SP4_1">&#167;4.1</a>, <a href="5-chr.html#SP5">&#167;5</a>, <a href="5-chr.html#SP7_2">&#167;7.2</a>, <a href="5-chr.html#SP8">&#167;8</a><br/>Conjugations - <a href="5-cnj.html#SP7">&#167;7</a>, <a href="5-cnj.html#SP8">&#167;8</a>, <a href="5-cnj.html#SP12_1">&#167;12.1</a>, <a href="5-cnj.html#SP7_2">&#167;7.2</a>, <a href="5-cnj.html#SP7_2_1">&#167;7.2.1</a>, <a href="5-cnj.html#SP7_2_2">&#167;7.2.2</a>, <a href="5-cnj.html#SP13">&#167;13</a><br/>Instances - <a href="5-ins.html#SP5">&#167;5</a><br/>Backdrop Instances - <a href="5-bi.html#SP2_1">&#167;2.1</a><br/>Door Instances - <a href="5-di.html#SP3">&#167;3</a>, <a href="5-di.html#SP5">&#167;5</a><br/>Region Instances - <a href="5-ri.html#SP2">&#167;2</a><br/>Scene Instances - <a href="5-si.html#SP3_1">&#167;3.1</a>, <a href="5-si.html#SP4">&#167;4</a>, <a href="5-si.html#SP4_2">&#167;4.2</a>, <a href="5-si.html#SP4_3">&#167;4.3</a>, <a href="5-si.html#SP6_1">&#167;6.1</a>, <a href="5-si.html#SP6_2">&#167;6.2</a>, <a href="5-si.html#SP6_3">&#167;6.3</a>, <a href="5-si.html#SP6_4">&#167;6.4</a>, <a href="5-si.html#SP6_5">&#167;6.5</a>, <a href="5-si.html#SP7">&#167;7</a>, <a href="5-si.html#SP7_1">&#167;7.1</a>, <a href="5-si.html#SP7_2">&#167;7.2</a>, <a href="5-si.html#SP7_2_1">&#167;7.2.1</a>, <a href="5-si.html#SP8">&#167;8</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2_7_1">&#167;2.7.1</a>, <a href="5-dbi.html#SP2_7_2">&#167;2.7.2</a>, <a href="5-dbi.html#SP2_7_2_1">&#167;2.7.2.1</a>, <a href="5-dbi.html#SP2_7_3_1">&#167;2.7.3.1</a>, <a href="5-dbi.html#SP2_7_4">&#167;2.7.4</a>, <a href="5-dbi.html#SP2_8_1">&#167;2.8.1</a><br/>Dialogue - <a href="5-dli.html#SP3_10_1">&#167;3.10.1</a>, <a href="5-dli.html#SP3_13">&#167;3.13</a>, <a href="5-dli.html#SP3_14">&#167;3.14</a>, <a href="5-dli.html#SP3_14_3">&#167;3.14.3</a>, <a href="5-dli.html#SP5">&#167;5</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_6_1">&#167;3.6.1</a>, <a href="5-dci.html#SP3_7">&#167;3.7</a>, <a href="5-dci.html#SP3_8">&#167;3.8</a><br/>Rules - <a href="5-rls.html#SP12_4">&#167;12.4</a>, <a href="5-rls.html#SP14">&#167;14</a>, <a href="5-rls.html#SP14_2">&#167;14.2</a>, <a href="5-rls.html#SP15">&#167;15</a>, <a href="5-rls.html#SP17_1">&#167;17.1</a>, <a href="5-rls.html#SP15_1">&#167;15.1</a>, <a href="5-rls.html#SP17_3">&#167;17.3</a>, <a href="5-rls.html#SP17_4">&#167;17.4</a>, <a href="5-rls.html#SP15_2">&#167;15.2</a>, <a href="5-rls.html#SP15_2_1">&#167;15.2.1</a>, <a href="5-rls.html#SP17_2_1">&#167;17.2.1</a><br/>Rulebooks - <a href="5-rlb.html#SP8_4_1_1">&#167;8.4.1.1</a>, <a href="5-rlb.html#SP8_4_1_2">&#167;8.4.1.2</a>, <a href="5-rlb.html#SP8_4_1_3">&#167;8.4.1.3</a>, <a href="5-rlb.html#SP8_4_1_4">&#167;8.4.1.4</a>, <a href="5-rlb.html#SP8_4_1_5">&#167;8.4.1.5</a>, <a href="5-rlb.html#SP8_4_1_3_1">&#167;8.4.1.3.1</a>, <a href="5-rlb.html#SP16">&#167;16</a><br/>Variables - <a href="5-vrb.html#SP8">&#167;8</a>, <a href="5-vrb.html#SP14_1">&#167;14.1</a><br/>Relations - <a href="5-rlt.html#SP6_1">&#167;6.1</a>, <a href="5-rlt.html#SP6_2">&#167;6.2</a>, <a href="5-rlt.html#SP6_4">&#167;6.4</a>, <a href="5-rlt.html#SP6_4_1">&#167;6.4.1</a>, <a href="5-rlt.html#SP6_4_4">&#167;6.4.4</a>, <a href="5-rlt.html#SP6_4_5">&#167;6.4.5</a>, <a href="5-rlt.html#SP6_4_5_1">&#167;6.4.5.1</a>, <a href="5-rlt.html#SP6_4_6">&#167;6.4.6</a>, <a href="5-rlt.html#SP6_4_7">&#167;6.4.7</a>, <a href="5-rlt.html#SP6_4_8">&#167;6.4.8</a>, <a href="5-rlt.html#SP6_4_9">&#167;6.4.9</a>, <a href="5-rlt.html#SP6_4_10">&#167;6.4.10</a>, <a href="5-rlt.html#SP6_4_11">&#167;6.4.11</a>, <a href="5-rlt.html#SP6_4_12">&#167;6.4.12</a>, <a href="5-rlt.html#SP6_4_9_1">&#167;6.4.9.1</a>, <a href="5-rlt.html#SP6_4_10_1">&#167;6.4.10.1</a>, <a href="5-rlt.html#SP6_4_12_1">&#167;6.4.12.1</a>, <a href="5-rlt.html#SP19_1">&#167;19.1</a>, <a href="5-rlt.html#SP19_2">&#167;19.2</a>, <a href="5-rlt.html#SP19_3">&#167;19.3</a>, <a href="5-rlt.html#SP19_4">&#167;19.4</a>, <a href="5-rlt.html#SP19_5">&#167;19.5</a>, <a href="5-rlt.html#SP20">&#167;20</a>, <a href="5-rlt.html#SP21">&#167;21</a><br/>Literal Patterns - <a href="5-lp.html#SP4_1_1">&#167;4.1.1</a>, <a href="5-lp.html#SP4_1_1_1">&#167;4.1.1.1</a>, <a href="5-lp.html#SP4_1_1_2">&#167;4.1.1.2</a>, <a href="5-lp.html#SP4_1_1_3">&#167;4.1.1.3</a>, <a href="5-lp.html#SP4_1_1_3_1">&#167;4.1.1.3.1</a>, <a href="5-lp.html#SP4_1_1_3_2">&#167;4.1.1.3.2</a>, <a href="5-lp.html#SP4_1_1_3_3">&#167;4.1.1.3.3</a>, <a href="5-lp.html#SP4_1_1_3_1_1">&#167;4.1.1.3.1.1</a>, <a href="5-lp.html#SP4_1_1_4">&#167;4.1.1.4</a>, <a href="5-lp.html#SP4_2">&#167;4.2</a>, <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>, <a href="5-lp.html#SP4_2_1_1">&#167;4.2.1.1</a>, <a href="5-lp.html#SP4_2_1_2">&#167;4.2.1.2</a>, <a href="5-lp.html#SP4_2_1_3">&#167;4.2.1.3</a>, <a href="5-lp.html#SP4_2_1_3_1">&#167;4.2.1.3.1</a>, <a href="5-lp.html#SP4_2_1_3_1_1">&#167;4.2.1.3.1.1</a>, <a href="5-lp.html#SP4_2_1_3_2">&#167;4.2.1.3.2</a>, <a href="5-lp.html#SP4_2_1_3_2_1">&#167;4.2.1.3.2.1</a>, <a href="5-lp.html#SP4_2_1_3_2_2">&#167;4.2.1.3.2.2</a>, <a href="5-lp.html#SP4_2_1_2_1">&#167;4.2.1.2.1</a>, <a href="5-lp.html#SP4_2_1_2_2">&#167;4.2.1.2.2</a>, <a href="5-lp.html#SP5">&#167;5</a>, <a href="5-lp.html#SP5_2">&#167;5.2</a>, <a href="5-lp.html#SP7_1">&#167;7.1</a>, <a href="5-lp.html#SP7_2">&#167;7.2</a>, <a href="5-lp.html#SP7_3">&#167;7.3</a><br/>Kind Constructors - <a href="5-kc.html#SP32_3_6_1">&#167;32.3.6.1</a>, <a href="5-kc.html#SP32_3_6_2">&#167;32.3.6.2</a>, <a href="5-kc.html#SP32_3_7">&#167;32.3.7</a>, <a href="5-kc.html#SP32_3_7_1">&#167;32.3.7.1</a>, <a href="5-kc.html#SP32_3_8">&#167;32.3.8</a>, <a href="5-kc.html#SP32_3_24">&#167;32.3.24</a>, <a href="5-kc.html#SP32_3_26">&#167;32.3.26</a>, <a href="5-kc.html#SP32_3_27">&#167;32.3.27</a>, <a href="5-kc.html#SP32_3_28">&#167;32.3.28</a><br/>Kind IDs - <a href="5-ki.html#SP10">&#167;10</a><br/>Actions - <a href="5-act2.html#SP8_5">&#167;8.5</a>, <a href="5-act2.html#SP8_6">&#167;8.6</a>, <a href="5-act2.html#SP8_6_1">&#167;8.6.1</a>, <a href="5-act2.html#SP9">&#167;9</a><br/>Named Action Patterns - <a href="5-nap.html#SP3">&#167;3</a><br/>Command Grammars - <a href="7-cg.html#SP10">&#167;10</a>, <a href="7-cg.html#SP12">&#167;12</a>, <a href="7-cg.html#SP13">&#167;13</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_2">&#167;6.2</a>, <a href="7-cgl.html#SP6_5">&#167;6.5</a>, <a href="7-cgl.html#SP6_6">&#167;6.6</a>, <a href="7-cgl.html#SP6_8">&#167;6.8</a>, <a href="7-cgl.html#SP7">&#167;7</a>, <a href="7-cgl.html#SP9">&#167;9</a>, <a href="7-cgl.html#SP10">&#167;10</a>, <a href="7-cgl.html#SP11">&#167;11</a>, <a href="7-cgl.html#SP13">&#167;13</a>, <a href="7-cgl.html#SP14_3">&#167;14.3</a>, <a href="7-cgl.html#SP14_5">&#167;14.5</a>, <a href="7-cgl.html#SP14_5_1">&#167;14.5.1</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_1">&#167;1.1</a>, <a href="7-cgt.html#SP1_1_1">&#167;1.1.1</a>, <a href="7-cgt.html#SP1_1_1_1">&#167;1.1.1.1</a>, <a href="7-cgt.html#SP1_2">&#167;1.2</a>, <a href="7-cgt.html#SP1_2_1">&#167;1.2.1</a>, <a href="7-cgt.html#SP1_2_2">&#167;1.2.2</a>, <a href="7-cgt.html#SP1_2_3">&#167;1.2.3</a>, <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_5">&#167;1.2.5</a>, <a href="7-cgt.html#SP1_2_6">&#167;1.2.6</a>, <a href="7-cgt.html#SP1_2_7">&#167;1.2.7</a>, <a href="7-cgt.html#SP1_2_8">&#167;1.2.8</a>, <a href="7-cgt.html#SP1_2_9">&#167;1.2.9</a>, <a href="7-cgt.html#SP1_2_10_1_1">&#167;1.2.10.1.1</a>, <a href="7-cgt.html#SP1_2_10_2_1">&#167;1.2.10.2.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">&#167;1.2.10.2.2</a>, <a href="7-cgt.html#SP1_2_10_1_1_1">&#167;1.2.10.1.1.1</a>, <a href="7-cgt.html#SP1_3">&#167;1.3</a>, <a href="7-cgt.html#SP1_4_1">&#167;1.4.1</a>, <a href="7-cgt.html#SP1_4_2">&#167;1.4.2</a>, <a href="7-cgt.html#SP1_4_3">&#167;1.4.3</a>, <a href="7-cgt.html#SP1_5">&#167;1.5</a>, <a href="7-cgt.html#SP1_6">&#167;1.6</a><br/>Kind GPRs - <a href="7-kg.html#SP1_1">&#167;1.1</a>, <a href="7-kg.html#SP1_2">&#167;1.2</a>, <a href="7-kg.html#SP4">&#167;4</a>, <a href="7-kg.html#SP4_1">&#167;4.1</a>, <a href="7-kg.html#SP4_3">&#167;4.3</a>, <a href="7-kg.html#SP4_4">&#167;4.4</a>, <a href="7-kg.html#SP5_1_1_1">&#167;5.1.1.1</a>, <a href="7-kg.html#SP5_1_1_2">&#167;5.1.1.2</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_1">&#167;3.1</a>, <a href="7-nft.html#SP3_2">&#167;3.2</a>, <a href="7-nft.html#SP3_3">&#167;3.3</a>, <a href="7-nft.html#SP4">&#167;4</a><br/>Parse Name Properties - <a href="7-pnp.html#SP4">&#167;4</a>, <a href="7-pnp.html#SP4_1">&#167;4.1</a>, <a href="7-pnp.html#SP4_2">&#167;4.2</a>, <a href="7-pnp.html#SP4_3">&#167;4.3</a>, <a href="7-pnp.html#SP4_3_1">&#167;4.3.1</a>, <a href="7-pnp.html#SP4_4">&#167;4.4</a>, <a href="7-pnp.html#SP4_5">&#167;4.5</a>, <a href="7-pnp.html#SP5">&#167;5</a>, <a href="7-pnp.html#SP6">&#167;6</a>, <a href="7-pnp.html#SP6_2">&#167;6.2</a>, <a href="7-pnp.html#SP6_3">&#167;6.3</a>, <a href="7-pnp.html#SP6_4">&#167;6.4</a>, <a href="7-pnp.html#SP6_5">&#167;6.5</a>, <a href="7-pnp.html#SP6_6">&#167;6.6</a>, <a href="7-pnp.html#SP8">&#167;8</a>, <a href="7-pnp.html#SP8_1">&#167;8.1</a>, <a href="7-pnp.html#SP9">&#167;9</a>, <a href="7-pnp.html#SP10">&#167;10</a>, <a href="7-pnp.html#SP10_1">&#167;10.1</a>, <a href="7-pnp.html#SP10_2">&#167;10.2</a>, <a href="7-pnp.html#SP11">&#167;11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. </b>And this returns the current depth of nesting, that is, how many downs we
have made, net:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::level</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">EmitCode::level</span></span>:<br/><a href="2-ec.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Produce::level</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. Structural. </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">EmitCode::code</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">EmitCode::code</span></span>:<br/>Shared Variables - <a href="2-sv.html#SP1">&#167;1</a><br/>Showme Command - <a href="2-sc.html#SP2">&#167;2</a>, <a href="2-sc.html#SP3">&#167;3</a>, <a href="2-sc.html#SP4">&#167;4</a>, <a href="2-sc.html#SP4_2">&#167;4.2</a>, <a href="2-sc.html#SP6_1">&#167;6.1</a>, <a href="2-sc.html#SP6_1_1">&#167;6.1.1</a>, <a href="2-sc.html#SP6_2">&#167;6.2</a>, <a href="2-sc.html#SP6_2_1">&#167;6.2.1</a><br/>Short Names - <a href="2-sn.html#SP4_1">&#167;4.1</a><br/>Text Substitutions - <a href="4-ts.html#SP7_2">&#167;7.2</a><br/>Responses - <a href="4-rsp.html#SP7_1">&#167;7.1</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Group Together - <a href="4-gt.html#SP3">&#167;3</a><br/>Looping Over Scope - <a href="4-los.html#SP3">&#167;3</a><br/>Adjectives - <a href="5-adj.html#SP6_1_2">&#167;6.1.2</a>, <a href="5-adj.html#SP8">&#167;8</a>, <a href="5-adj.html#SP15">&#167;15</a><br/>Chronology - <a href="5-chr.html#SP8">&#167;8</a><br/>Conjugations - <a href="5-cnj.html#SP7">&#167;7</a>, <a href="5-cnj.html#SP12_1">&#167;12.1</a>, <a href="5-cnj.html#SP7_2">&#167;7.2</a>, <a href="5-cnj.html#SP7_2_1">&#167;7.2.1</a>, <a href="5-cnj.html#SP7_2_2">&#167;7.2.2</a>, <a href="5-cnj.html#SP13">&#167;13</a><br/>Backdrop Instances - <a href="5-bi.html#SP2_1">&#167;2.1</a><br/>Door Instances - <a href="5-di.html#SP3">&#167;3</a>, <a href="5-di.html#SP5">&#167;5</a><br/>Region Instances - <a href="5-ri.html#SP2">&#167;2</a><br/>Scene Instances - <a href="5-si.html#SP3_1">&#167;3.1</a>, <a href="5-si.html#SP4">&#167;4</a>, <a href="5-si.html#SP4_2">&#167;4.2</a>, <a href="5-si.html#SP4_3">&#167;4.3</a>, <a href="5-si.html#SP6_1">&#167;6.1</a>, <a href="5-si.html#SP6_4">&#167;6.4</a>, <a href="5-si.html#SP6_5">&#167;6.5</a>, <a href="5-si.html#SP7">&#167;7</a>, <a href="5-si.html#SP7_2">&#167;7.2</a>, <a href="5-si.html#SP7_2_1">&#167;7.2.1</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2_7_1">&#167;2.7.1</a>, <a href="5-dbi.html#SP2_7_2">&#167;2.7.2</a>, <a href="5-dbi.html#SP2_7_2_1">&#167;2.7.2.1</a>, <a href="5-dbi.html#SP2_7_3_1">&#167;2.7.3.1</a>, <a href="5-dbi.html#SP2_7_4">&#167;2.7.4</a>, <a href="5-dbi.html#SP2_8_1">&#167;2.8.1</a><br/>Dialogue - <a href="5-dli.html#SP3_10_1">&#167;3.10.1</a>, <a href="5-dli.html#SP3_14">&#167;3.14</a>, <a href="5-dli.html#SP3_14_3">&#167;3.14.3</a>, <a href="5-dli.html#SP5">&#167;5</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_6_1">&#167;3.6.1</a>, <a href="5-dci.html#SP3_8">&#167;3.8</a><br/>Rules - <a href="5-rls.html#SP14">&#167;14</a>, <a href="5-rls.html#SP15">&#167;15</a>, <a href="5-rls.html#SP17_1">&#167;17.1</a>, <a href="5-rls.html#SP15_1">&#167;15.1</a>, <a href="5-rls.html#SP17_3">&#167;17.3</a>, <a href="5-rls.html#SP17_4">&#167;17.4</a>, <a href="5-rls.html#SP15_2">&#167;15.2</a>, <a href="5-rls.html#SP17_2_1">&#167;17.2.1</a><br/>Rulebooks - <a href="5-rlb.html#SP8_4_1_2">&#167;8.4.1.2</a>, <a href="5-rlb.html#SP8_4_1_3">&#167;8.4.1.3</a>, <a href="5-rlb.html#SP8_4_1_4">&#167;8.4.1.4</a>, <a href="5-rlb.html#SP8_4_1_3_1">&#167;8.4.1.3.1</a><br/>Relations - <a href="5-rlt.html#SP6_4">&#167;6.4</a>, <a href="5-rlt.html#SP6_4_4">&#167;6.4.4</a>, <a href="5-rlt.html#SP6_4_9">&#167;6.4.9</a>, <a href="5-rlt.html#SP6_4_12">&#167;6.4.12</a>, <a href="5-rlt.html#SP6_4_9_1">&#167;6.4.9.1</a>, <a href="5-rlt.html#SP6_4_10_1">&#167;6.4.10.1</a>, <a href="5-rlt.html#SP6_4_12_1">&#167;6.4.12.1</a>, <a href="5-rlt.html#SP19_1">&#167;19.1</a>, <a href="5-rlt.html#SP19_2">&#167;19.2</a>, <a href="5-rlt.html#SP19_3">&#167;19.3</a>, <a href="5-rlt.html#SP19_4">&#167;19.4</a>, <a href="5-rlt.html#SP19_5">&#167;19.5</a>, <a href="5-rlt.html#SP21">&#167;21</a><br/>Literal Patterns - <a href="5-lp.html#SP4_1_1_3">&#167;4.1.1.3</a>, <a href="5-lp.html#SP4_1_1_3_2">&#167;4.1.1.3.2</a>, <a href="5-lp.html#SP4_1_1_4">&#167;4.1.1.4</a>, <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>, <a href="5-lp.html#SP4_2_1_1">&#167;4.2.1.1</a>, <a href="5-lp.html#SP4_2_1_2">&#167;4.2.1.2</a>, <a href="5-lp.html#SP4_2_1_3">&#167;4.2.1.3</a>, <a href="5-lp.html#SP4_2_1_3_1">&#167;4.2.1.3.1</a>, <a href="5-lp.html#SP4_2_1_3_1_1">&#167;4.2.1.3.1.1</a>, <a href="5-lp.html#SP4_2_1_3_2">&#167;4.2.1.3.2</a>, <a href="5-lp.html#SP4_2_1_3_2_1">&#167;4.2.1.3.2.1</a>, <a href="5-lp.html#SP4_2_1_3_2_2">&#167;4.2.1.3.2.2</a>, <a href="5-lp.html#SP4_2_1_2_1">&#167;4.2.1.2.1</a>, <a href="5-lp.html#SP4_2_1_2_2">&#167;4.2.1.2.2</a>, <a href="5-lp.html#SP5">&#167;5</a>, <a href="5-lp.html#SP5_2">&#167;5.2</a>, <a href="5-lp.html#SP7_1">&#167;7.1</a>, <a href="5-lp.html#SP7_2">&#167;7.2</a>, <a href="5-lp.html#SP7_3">&#167;7.3</a><br/>Kind Constructors - <a href="5-kc.html#SP32_3_7">&#167;32.3.7</a>, <a href="5-kc.html#SP32_3_8">&#167;32.3.8</a>, <a href="5-kc.html#SP32_3_28">&#167;32.3.28</a><br/>Actions - <a href="5-act2.html#SP8_6">&#167;8.6</a><br/>Named Action Patterns - <a href="5-nap.html#SP3">&#167;3</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_2">&#167;6.2</a>, <a href="7-cgl.html#SP6_6">&#167;6.6</a>, <a href="7-cgl.html#SP7">&#167;7</a>, <a href="7-cgl.html#SP9">&#167;9</a>, <a href="7-cgl.html#SP10">&#167;10</a>, <a href="7-cgl.html#SP11">&#167;11</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_1_1">&#167;1.1.1</a>, <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_5">&#167;1.2.5</a>, <a href="7-cgt.html#SP1_2_10_1_1">&#167;1.2.10.1.1</a>, <a href="7-cgt.html#SP1_2_10_2_1">&#167;1.2.10.2.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">&#167;1.2.10.2.2</a>, <a href="7-cgt.html#SP1_2_10_1_1_1">&#167;1.2.10.1.1.1</a>, <a href="7-cgt.html#SP1_5">&#167;1.5</a><br/>Kind GPRs - <a href="7-kg.html#SP4">&#167;4</a>, <a href="7-kg.html#SP5_1_1_1">&#167;5.1.1.1</a>, <a href="7-kg.html#SP5_1_1_2">&#167;5.1.1.2</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_1">&#167;3.1</a>, <a href="7-nft.html#SP3_2">&#167;3.2</a><br/>Parse Name Properties - <a href="7-pnp.html#SP4">&#167;4</a>, <a href="7-pnp.html#SP4_1">&#167;4.1</a>, <a href="7-pnp.html#SP4_2">&#167;4.2</a>, <a href="7-pnp.html#SP4_3">&#167;4.3</a>, <a href="7-pnp.html#SP4_3_1">&#167;4.3.1</a>, <a href="7-pnp.html#SP6_2">&#167;6.2</a>, <a href="7-pnp.html#SP6_3">&#167;6.3</a>, <a href="7-pnp.html#SP6_4">&#167;6.4</a>, <a href="7-pnp.html#SP6_6">&#167;6.6</a>, <a href="7-pnp.html#SP8">&#167;8</a>, <a href="7-pnp.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::reference</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">EmitCode::reference</span></span>:<br/>Shared Variables - <a href="2-sv.html#SP1_1">&#167;1.1</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Scene Instances - <a href="5-si.html#SP6_1">&#167;6.1</a>, <a href="5-si.html#SP6_3">&#167;6.3</a><br/>Rulebooks - <a href="5-rlb.html#SP8_4_1_3">&#167;8.4.1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::reference</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. Comments. </b>Note that these can only safely be made in void context: for example, at the
start of a function.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::comment</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">EmitCode::comment</span></span>:<br/>Adjectives - <a href="5-adj.html#SP6_1">&#167;6.1</a><br/>Conjugations - <a href="5-cnj.html#SP12_1">&#167;12.1</a><br/>Rulebooks - <a href="5-rlb.html#SP9">&#167;9</a>, <a href="5-rlb.html#SP10">&#167;10</a><br/>Literal Patterns - <a href="5-lp.html#SP5">&#167;5</a>, <a href="5-lp.html#SP6">&#167;6</a><br/>Kind Constructors - <a href="5-kc.html#SP32_3_26">&#167;32.3.26</a><br/>Parse Name Properties - <a href="7-pnp.html#SP8">&#167;8</a>, <a href="7-pnp.html#SP10">&#167;10</a>, <a href="7-pnp.html#SP11">&#167;11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Functions::a_function_is_being_compiled</span><span class="plain-syntax">() == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"code comment emitted outside function"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::guard</span><span class="plain-syntax">(</span><span class="identifier-syntax">CommentInstruction::new</span><span class="plain-syntax">(</span><a href="2-ec.html#SP2" class="function-link"><span class="function-syntax">EmitCode::at</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><a href="2-ec.html#SP4" class="function-link"><span class="function-syntax">EmitCode::level</span></a><span class="plain-syntax">()));</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. Provenance markers. </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">EmitCode::provenance</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_provenance</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::provenance</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">from</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>&#167;8. In value context. </b>These functions all generate a <span class="extract"><span class="extract-syntax">val</span></span> opcode:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::val_number</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">EmitCode::val_number</span></span>:<br/>Shared Variables - <a href="2-sv.html#SP1">&#167;1</a><br/>The Heap - <a href="2-th.html#SP5">&#167;5</a><br/>Showme Command - <a href="2-sc.html#SP4_2">&#167;4.2</a>, <a href="2-sc.html#SP6_1_1">&#167;6.1.1</a>, <a href="2-sc.html#SP6_2">&#167;6.2</a>, <a href="2-sc.html#SP6_2_1">&#167;6.2.1</a><br/>Short Names - <a href="2-sn.html#SP4_1">&#167;4.1</a><br/>Responses - <a href="4-rsp.html#SP7_1">&#167;7.1</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Group Together - <a href="4-gt.html#SP3">&#167;3</a><br/>Adjectives - <a href="5-adj.html#SP8">&#167;8</a>, <a href="5-adj.html#SP9">&#167;9</a><br/>Chronology - <a href="5-chr.html#SP3_4">&#167;3.4</a>, <a href="5-chr.html#SP5">&#167;5</a>, <a href="5-chr.html#SP7_2">&#167;7.2</a><br/>Conjugations - <a href="5-cnj.html#SP7">&#167;7</a>, <a href="5-cnj.html#SP8">&#167;8</a>, <a href="5-cnj.html#SP7_2">&#167;7.2</a>, <a href="5-cnj.html#SP7_2_1">&#167;7.2.1</a>, <a href="5-cnj.html#SP7_2_2">&#167;7.2.2</a>, <a href="5-cnj.html#SP13">&#167;13</a><br/>Scene Instances - <a href="5-si.html#SP3_1">&#167;3.1</a>, <a href="5-si.html#SP4">&#167;4</a>, <a href="5-si.html#SP4_2">&#167;4.2</a>, <a href="5-si.html#SP4_3">&#167;4.3</a>, <a href="5-si.html#SP6_1">&#167;6.1</a>, <a href="5-si.html#SP6_2">&#167;6.2</a>, <a href="5-si.html#SP6_3">&#167;6.3</a>, <a href="5-si.html#SP6_5">&#167;6.5</a>, <a href="5-si.html#SP7">&#167;7</a>, <a href="5-si.html#SP7_1">&#167;7.1</a>, <a href="5-si.html#SP7_2">&#167;7.2</a>, <a href="5-si.html#SP7_2_1">&#167;7.2.1</a>, <a href="5-si.html#SP8">&#167;8</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2_7_1">&#167;2.7.1</a>, <a href="5-dbi.html#SP2_7_2">&#167;2.7.2</a>, <a href="5-dbi.html#SP2_8_1">&#167;2.8.1</a><br/>Dialogue - <a href="5-dli.html#SP3_14">&#167;3.14</a>, <a href="5-dli.html#SP3_14_3">&#167;3.14.3</a><br/>Rules - <a href="5-rls.html#SP14_1">&#167;14.1</a>, <a href="5-rls.html#SP14_2">&#167;14.2</a>, <a href="5-rls.html#SP15">&#167;15</a>, <a href="5-rls.html#SP15_2_1">&#167;15.2.1</a>, <a href="5-rls.html#SP17_2_1">&#167;17.2.1</a><br/>Rulebooks - <a href="5-rlb.html#SP8_4_1_3">&#167;8.4.1.3</a>, <a href="5-rlb.html#SP8_4_1_5">&#167;8.4.1.5</a>, <a href="5-rlb.html#SP16">&#167;16</a><br/>Variables - <a href="5-vrb.html#SP8">&#167;8</a><br/>Relations - <a href="5-rlt.html#SP6_4_8">&#167;6.4.8</a>, <a href="5-rlt.html#SP6_4_10">&#167;6.4.10</a>, <a href="5-rlt.html#SP6_4_11">&#167;6.4.11</a>, <a href="5-rlt.html#SP6_4_12">&#167;6.4.12</a>, <a href="5-rlt.html#SP6_4_12_1">&#167;6.4.12.1</a><br/>Literal Patterns - <a href="5-lp.html#SP4_1_1_3">&#167;4.1.1.3</a>, <a href="5-lp.html#SP4_1_1_3_1">&#167;4.1.1.3.1</a>, <a href="5-lp.html#SP4_1_1_3_2">&#167;4.1.1.3.2</a>, <a href="5-lp.html#SP4_1_1_3_3">&#167;4.1.1.3.3</a>, <a href="5-lp.html#SP4_1_1_3_1_1">&#167;4.1.1.3.1.1</a>, <a href="5-lp.html#SP4_1_1_4">&#167;4.1.1.4</a>, <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>, <a href="5-lp.html#SP4_2_1_2">&#167;4.2.1.2</a>, <a href="5-lp.html#SP4_2_1_3">&#167;4.2.1.3</a>, <a href="5-lp.html#SP4_2_1_3_1">&#167;4.2.1.3.1</a>, <a href="5-lp.html#SP4_2_1_3_1_1">&#167;4.2.1.3.1.1</a>, <a href="5-lp.html#SP4_2_1_3_2">&#167;4.2.1.3.2</a>, <a href="5-lp.html#SP4_2_1_3_2_1">&#167;4.2.1.3.2.1</a>, <a href="5-lp.html#SP4_2_1_3_2_2">&#167;4.2.1.3.2.2</a>, <a href="5-lp.html#SP4_2_1_2_1">&#167;4.2.1.2.1</a>, <a href="5-lp.html#SP5">&#167;5</a>, <a href="5-lp.html#SP5_2">&#167;5.2</a>, <a href="5-lp.html#SP7_1">&#167;7.1</a>, <a href="5-lp.html#SP7_2">&#167;7.2</a>, <a href="5-lp.html#SP7_3">&#167;7.3</a><br/>Kind Constructors - <a href="5-kc.html#SP32_3_6_1">&#167;32.3.6.1</a>, <a href="5-kc.html#SP32_3_6_2">&#167;32.3.6.2</a>, <a href="5-kc.html#SP32_3_7">&#167;32.3.7</a>, <a href="5-kc.html#SP32_3_7_1">&#167;32.3.7.1</a>, <a href="5-kc.html#SP32_3_8">&#167;32.3.8</a><br/>Actions - <a href="5-act2.html#SP8_6">&#167;8.6</a>, <a href="5-act2.html#SP9">&#167;9</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_6">&#167;6.6</a>, <a href="7-cgl.html#SP7">&#167;7</a>, <a href="7-cgl.html#SP9">&#167;9</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_5">&#167;1.2.5</a>, <a href="7-cgt.html#SP1_2_10_1_1_1">&#167;1.2.10.1.1.1</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_2">&#167;3.2</a><br/>Parse Name Properties - <a href="7-pnp.html#SP4">&#167;4</a>, <a href="7-pnp.html#SP4_1">&#167;4.1</a>, <a href="7-pnp.html#SP4_2">&#167;4.2</a>, <a href="7-pnp.html#SP4_3">&#167;4.3</a>, <a href="7-pnp.html#SP4_3_1">&#167;4.3.1</a>, <a href="7-pnp.html#SP6_2">&#167;6.2</a>, <a href="7-pnp.html#SP6_3">&#167;6.3</a>, <a href="7-pnp.html#SP6_6">&#167;6.6</a>, <a href="7-pnp.html#SP8">&#167;8</a>, <a href="7-pnp.html#SP8_1">&#167;8.1</a>, <a href="7-pnp.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterValuePairs::number</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</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">EmitCode::val_true</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">EmitCode::val_true</span></span>:<br/>Responses - <a href="4-rsp.html#SP7_1">&#167;7.1</a><br/>Scene Instances - <a href="5-si.html#SP8">&#167;8</a><br/>Dialogue - <a href="5-dli.html#SP3_14_3">&#167;3.14.3</a><br/>Rules - <a href="5-rls.html#SP14_1">&#167;14.1</a><br/>Relations - <a href="5-rlt.html#SP6_2">&#167;6.2</a>, <a href="5-rlt.html#SP6_4_6">&#167;6.4.6</a>, <a href="5-rlt.html#SP6_4_7">&#167;6.4.7</a>, <a href="5-rlt.html#SP6_4_8">&#167;6.4.8</a>, <a href="5-rlt.html#SP6_4_12_1">&#167;6.4.12.1</a><br/>Literal Patterns - <a href="5-lp.html#SP4_2_1_3_1">&#167;4.2.1.3.1</a>, <a href="5-lp.html#SP4_2_1_3_2_1">&#167;4.2.1.3.2.1</a>, <a href="5-lp.html#SP4_2_1_3_2_2">&#167;4.2.1.3.2.2</a>, <a href="5-lp.html#SP4_2_1_2_1">&#167;4.2.1.2.1</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_5">&#167;1.2.5</a>, <a href="7-cgt.html#SP1_2_8">&#167;1.2.8</a>, <a href="7-cgt.html#SP1_2_9">&#167;1.2.9</a>, <a href="7-cgt.html#SP1_2_10_1_1_1">&#167;1.2.10.1.1.1</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_2">&#167;3.2</a><br/>Parse Name Properties - <a href="7-pnp.html#SP4_3_1">&#167;4.3.1</a>, <a href="7-pnp.html#SP5">&#167;5</a>, <a href="7-pnp.html#SP10">&#167;10</a>, <a href="7-pnp.html#SP10_2">&#167;10.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_truth_state</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterValuePairs::number</span><span class="plain-syntax">(1));</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::val_false</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">EmitCode::val_false</span></span>:<br/>Responses - <a href="4-rsp.html#SP7_1">&#167;7.1</a><br/>Looping Over Scope - <a href="4-los.html#SP3">&#167;3</a><br/>Dialogue - <a href="5-dli.html#SP5">&#167;5</a><br/>Rules - <a href="5-rls.html#SP15_2">&#167;15.2</a><br/>Relations - <a href="5-rlt.html#SP6_4_4">&#167;6.4.4</a>, <a href="5-rlt.html#SP6_4_7">&#167;6.4.7</a>, <a href="5-rlt.html#SP6_4_8">&#167;6.4.8</a>, <a href="5-rlt.html#SP6_4_12_1">&#167;6.4.12.1</a><br/>Literal Patterns - <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>, <a href="5-lp.html#SP4_2_1_3_1">&#167;4.2.1.3.1</a>, <a href="5-lp.html#SP4_2_1_3_2">&#167;4.2.1.3.2</a>, <a href="5-lp.html#SP4_2_1_3_2_1">&#167;4.2.1.3.2.1</a>, <a href="5-lp.html#SP4_2_1_3_2_2">&#167;4.2.1.3.2.2</a>, <a href="5-lp.html#SP4_2_1_2_1">&#167;4.2.1.2.1</a>, <a href="5-lp.html#SP4_2_1_2_2">&#167;4.2.1.2.2</a><br/>Kind Constructors - <a href="5-kc.html#SP32_3_24">&#167;32.3.24</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2_10_1_1">&#167;1.2.10.1.1</a>, <a href="7-cgt.html#SP1_2_10_2_1">&#167;1.2.10.2.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">&#167;1.2.10.2.2</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_2">&#167;3.2</a><br/>Parse Name Properties - <a href="7-pnp.html#SP4_3">&#167;4.3</a>, <a href="7-pnp.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_truth_state</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterValuePairs::number</span><span class="plain-syntax">(0));</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::val_iname</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">EmitCode::val_iname</span></span>:<br/><a href="2-ec.html#SP9">&#167;9</a><br/>Shared Variables - <a href="2-sv.html#SP1_1">&#167;1.1</a>, <a href="2-sv.html#SP1_2">&#167;1.2</a><br/>Showme Command - <a href="2-sc.html#SP6_1">&#167;6.1</a>, <a href="2-sc.html#SP6_1_1">&#167;6.1.1</a>, <a href="2-sc.html#SP6_1_1_1">&#167;6.1.1.1</a>, <a href="2-sc.html#SP6_2">&#167;6.2</a><br/>Short Names - <a href="2-sn.html#SP4_1">&#167;4.1</a><br/>Text Substitutions - <a href="4-ts.html#SP2_1">&#167;2.1</a>, <a href="4-ts.html#SP7_2">&#167;7.2</a><br/>Responses - <a href="4-rsp.html#SP4">&#167;4</a>, <a href="4-rsp.html#SP6">&#167;6</a>, <a href="4-rsp.html#SP7_1">&#167;7.1</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Group Together - <a href="4-gt.html#SP3">&#167;3</a><br/>Adjectives - <a href="5-adj.html#SP8">&#167;8</a>, <a href="5-adj.html#SP9">&#167;9</a><br/>Chronology - <a href="5-chr.html#SP3_4">&#167;3.4</a>, <a href="5-chr.html#SP5">&#167;5</a>, <a href="5-chr.html#SP7_2">&#167;7.2</a><br/>Conjugations - <a href="5-cnj.html#SP7">&#167;7</a>, <a href="5-cnj.html#SP8">&#167;8</a>, <a href="5-cnj.html#SP12_1">&#167;12.1</a><br/>Instances - <a href="5-ins.html#SP5">&#167;5</a><br/>Backdrop Instances - <a href="5-bi.html#SP2_1">&#167;2.1</a><br/>Door Instances - <a href="5-di.html#SP3">&#167;3</a>, <a href="5-di.html#SP5">&#167;5</a><br/>Region Instances - <a href="5-ri.html#SP2">&#167;2</a><br/>Scene Instances - <a href="5-si.html#SP3_1">&#167;3.1</a>, <a href="5-si.html#SP4">&#167;4</a>, <a href="5-si.html#SP4_3">&#167;4.3</a>, <a href="5-si.html#SP6_1">&#167;6.1</a>, <a href="5-si.html#SP6_2">&#167;6.2</a>, <a href="5-si.html#SP6_3">&#167;6.3</a>, <a href="5-si.html#SP6_4">&#167;6.4</a>, <a href="5-si.html#SP6_5">&#167;6.5</a>, <a href="5-si.html#SP7">&#167;7</a>, <a href="5-si.html#SP7_1">&#167;7.1</a>, <a href="5-si.html#SP7_2">&#167;7.2</a>, <a href="5-si.html#SP7_2_1">&#167;7.2.1</a>, <a href="5-si.html#SP8">&#167;8</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2_7_1">&#167;2.7.1</a>, <a href="5-dbi.html#SP2_7_2_1">&#167;2.7.2.1</a>, <a href="5-dbi.html#SP2_8_1">&#167;2.8.1</a><br/>Dialogue - <a href="5-dli.html#SP3_13">&#167;3.13</a>, <a href="5-dli.html#SP3_14_3">&#167;3.14.3</a>, <a href="5-dli.html#SP5">&#167;5</a><br/>Rules - <a href="5-rls.html#SP15">&#167;15</a>, <a href="5-rls.html#SP15_1">&#167;15.1</a>, <a href="5-rls.html#SP17_3">&#167;17.3</a>, <a href="5-rls.html#SP17_4">&#167;17.4</a>, <a href="5-rls.html#SP15_2_1">&#167;15.2.1</a>, <a href="5-rls.html#SP17_2_1">&#167;17.2.1</a><br/>Rulebooks - <a href="5-rlb.html#SP8_4_1_1">&#167;8.4.1.1</a>, <a href="5-rlb.html#SP8_4_1_2">&#167;8.4.1.2</a>, <a href="5-rlb.html#SP8_4_1_3">&#167;8.4.1.3</a>, <a href="5-rlb.html#SP8_4_1_3_1">&#167;8.4.1.3.1</a>, <a href="5-rlb.html#SP16">&#167;16</a><br/>Variables - <a href="5-vrb.html#SP8">&#167;8</a>, <a href="5-vrb.html#SP14_1">&#167;14.1</a><br/>Relations - <a href="5-rlt.html#SP6_1">&#167;6.1</a>, <a href="5-rlt.html#SP6_2">&#167;6.2</a>, <a href="5-rlt.html#SP6_4">&#167;6.4</a>, <a href="5-rlt.html#SP6_4_1">&#167;6.4.1</a>, <a href="5-rlt.html#SP6_4_5">&#167;6.4.5</a>, <a href="5-rlt.html#SP6_4_5_1">&#167;6.4.5.1</a>, <a href="5-rlt.html#SP6_4_6">&#167;6.4.6</a>, <a href="5-rlt.html#SP6_4_7">&#167;6.4.7</a>, <a href="5-rlt.html#SP6_4_8">&#167;6.4.8</a>, <a href="5-rlt.html#SP6_4_9">&#167;6.4.9</a>, <a href="5-rlt.html#SP6_4_12">&#167;6.4.12</a>, <a href="5-rlt.html#SP6_4_9_1">&#167;6.4.9.1</a>, <a href="5-rlt.html#SP6_4_10_1">&#167;6.4.10.1</a>, <a href="5-rlt.html#SP6_4_12_1">&#167;6.4.12.1</a>, <a href="5-rlt.html#SP19_1">&#167;19.1</a>, <a href="5-rlt.html#SP19_2">&#167;19.2</a>, <a href="5-rlt.html#SP19_3">&#167;19.3</a>, <a href="5-rlt.html#SP19_4">&#167;19.4</a>, <a href="5-rlt.html#SP19_5">&#167;19.5</a>, <a href="5-rlt.html#SP21">&#167;21</a><br/>Literal Patterns - <a href="5-lp.html#SP4_1_1_3_1">&#167;4.1.1.3.1</a>, <a href="5-lp.html#SP4_2">&#167;4.2</a>, <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>, <a href="5-lp.html#SP4_2_1_3_1">&#167;4.2.1.3.1</a>, <a href="5-lp.html#SP4_2_1_3_2">&#167;4.2.1.3.2</a>, <a href="5-lp.html#SP4_2_1_2_1">&#167;4.2.1.2.1</a><br/>Kind Constructors - <a href="5-kc.html#SP32_3_6_1">&#167;32.3.6.1</a>, <a href="5-kc.html#SP32_3_6_2">&#167;32.3.6.2</a>, <a href="5-kc.html#SP32_3_7">&#167;32.3.7</a>, <a href="5-kc.html#SP32_3_7_1">&#167;32.3.7.1</a>, <a href="5-kc.html#SP32_3_8">&#167;32.3.8</a>, <a href="5-kc.html#SP32_3_28">&#167;32.3.28</a><br/>Kind IDs - <a href="5-ki.html#SP2">&#167;2</a>, <a href="5-ki.html#SP6">&#167;6</a>, <a href="5-ki.html#SP10">&#167;10</a><br/>Actions - <a href="5-act2.html#SP8_5">&#167;8.5</a>, <a href="5-act2.html#SP9">&#167;9</a><br/>Command Grammars - <a href="7-cg.html#SP10">&#167;10</a>, <a href="7-cg.html#SP12">&#167;12</a>, <a href="7-cg.html#SP13">&#167;13</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_5">&#167;6.5</a>, <a href="7-cgl.html#SP6_6">&#167;6.6</a>, <a href="7-cgl.html#SP6_8">&#167;6.8</a>, <a href="7-cgl.html#SP7">&#167;7</a>, <a href="7-cgl.html#SP9">&#167;9</a>, <a href="7-cgl.html#SP10">&#167;10</a>, <a href="7-cgl.html#SP11">&#167;11</a>, <a href="7-cgl.html#SP13">&#167;13</a>, <a href="7-cgl.html#SP14_3">&#167;14.3</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2">&#167;1.2</a>, <a href="7-cgt.html#SP1_2_1">&#167;1.2.1</a>, <a href="7-cgt.html#SP1_2_2">&#167;1.2.2</a>, <a href="7-cgt.html#SP1_2_3">&#167;1.2.3</a>, <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_5">&#167;1.2.5</a>, <a href="7-cgt.html#SP1_2_6">&#167;1.2.6</a>, <a href="7-cgt.html#SP1_2_7">&#167;1.2.7</a>, <a href="7-cgt.html#SP1_2_8">&#167;1.2.8</a>, <a href="7-cgt.html#SP1_2_9">&#167;1.2.9</a>, <a href="7-cgt.html#SP1_2_10_1_1">&#167;1.2.10.1.1</a>, <a href="7-cgt.html#SP1_2_10_2_1">&#167;1.2.10.2.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">&#167;1.2.10.2.2</a>, <a href="7-cgt.html#SP1_2_10_1_1_1">&#167;1.2.10.1.1.1</a>, <a href="7-cgt.html#SP1_3">&#167;1.3</a>, <a href="7-cgt.html#SP1_4_1">&#167;1.4.1</a>, <a href="7-cgt.html#SP1_4_2">&#167;1.4.2</a>, <a href="7-cgt.html#SP1_4_3">&#167;1.4.3</a>, <a href="7-cgt.html#SP1_5">&#167;1.5</a>, <a href="7-cgt.html#SP1_6">&#167;1.6</a><br/>Kind GPRs - <a href="7-kg.html#SP1_1">&#167;1.1</a>, <a href="7-kg.html#SP1_2">&#167;1.2</a>, <a href="7-kg.html#SP4">&#167;4</a>, <a href="7-kg.html#SP4_1">&#167;4.1</a>, <a href="7-kg.html#SP4_4">&#167;4.4</a>, <a href="7-kg.html#SP5_1_1_1">&#167;5.1.1.1</a>, <a href="7-kg.html#SP5_1_1_2">&#167;5.1.1.2</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_1">&#167;3.1</a>, <a href="7-nft.html#SP3_2">&#167;3.2</a>, <a href="7-nft.html#SP3_3">&#167;3.3</a>, <a href="7-nft.html#SP4">&#167;4</a><br/>Parse Name Properties - <a href="7-pnp.html#SP4_1">&#167;4.1</a>, <a href="7-pnp.html#SP4_2">&#167;4.2</a>, <a href="7-pnp.html#SP4_3">&#167;4.3</a>, <a href="7-pnp.html#SP4_3_1">&#167;4.3.1</a>, <a href="7-pnp.html#SP4_4">&#167;4.4</a>, <a href="7-pnp.html#SP5">&#167;5</a>, <a href="7-pnp.html#SP6_2">&#167;6.2</a>, <a href="7-pnp.html#SP6_3">&#167;6.3</a>, <a href="7-pnp.html#SP8">&#167;8</a>, <a href="7-pnp.html#SP10">&#167;10</a>, <a href="7-pnp.html#SP10_2">&#167;10.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="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><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::val_text</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">EmitCode::val_text</span></span>:<br/>Showme Command - <a href="2-sc.html#SP4_2">&#167;4.2</a>, <a href="2-sc.html#SP6_1_1">&#167;6.1.1</a>, <a href="2-sc.html#SP6_2">&#167;6.2</a>, <a href="2-sc.html#SP6_2_1">&#167;6.2.1</a><br/>Short Names - <a href="2-sn.html#SP4">&#167;4</a>, <a href="2-sn.html#SP4_2">&#167;4.2</a><br/>Text Substitutions - <a href="4-ts.html#SP7_2">&#167;7.2</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Adjectives - <a href="5-adj.html#SP8">&#167;8</a><br/>Conjugations - <a href="5-cnj.html#SP12_1">&#167;12.1</a>, <a href="5-cnj.html#SP13">&#167;13</a><br/>Scene Instances - <a href="5-si.html#SP6_4">&#167;6.4</a>, <a href="5-si.html#SP7_1">&#167;7.1</a>, <a href="5-si.html#SP7_2_1">&#167;7.2.1</a><br/>Relations - <a href="5-rlt.html#SP6_2">&#167;6.2</a><br/>Literal Patterns - <a href="5-lp.html#SP4_1_1">&#167;4.1.1</a>, <a href="5-lp.html#SP4_1_1_1">&#167;4.1.1.1</a>, <a href="5-lp.html#SP4_1_1_2">&#167;4.1.1.2</a>, <a href="5-lp.html#SP4_1_1_3">&#167;4.1.1.3</a>, <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>, <a href="5-lp.html#SP7_2">&#167;7.2</a><br/>Kind Constructors - <a href="5-kc.html#SP32_3_28">&#167;32.3.28</a><br/>Actions - <a href="5-act2.html#SP8_6">&#167;8.6</a>, <a href="5-act2.html#SP8_6_1">&#167;8.6.1</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP9">&#167;9</a><br/>Parse Name Properties - <a href="7-pnp.html#SP4_1">&#167;4.1</a>, <a href="7-pnp.html#SP6_3">&#167;6.3</a>, <a href="7-pnp.html#SP8">&#167;8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_text</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">text</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">EmitCode::val_dword</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">EmitCode::val_dword</span></span>:<br/>Literal Patterns - <a href="5-lp.html#SP4_2_1_1">&#167;4.2.1.1</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_1">&#167;1.1</a><br/>Kind GPRs - <a href="7-kg.html#SP5_1_1_1">&#167;5.1.1.1</a><br/>Parse Name Properties - <a href="7-pnp.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_dword</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">text</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">EmitCode::val_real</span><span class="plain-syntax">(</span><span class="reserved-syntax">double</span><span class="plain-syntax"> </span><span class="identifier-syntax">g</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_real</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">g</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">EmitCode::val_nothing</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">EmitCode::val_nothing</span></span>:<br/>Adjectives - <a href="5-adj.html#SP8">&#167;8</a><br/>Relations - <a href="5-rlt.html#SP19_1">&#167;19.1</a>, <a href="5-rlt.html#SP19_2">&#167;19.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_nothing</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::val_symbol</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">EmitCode::val_symbol</span></span>:<br/><a href="2-ec.html#SP9">&#167;9</a><br/>Shared Variables - <a href="2-sv.html#SP1">&#167;1</a>, <a href="2-sv.html#SP1_1">&#167;1.1</a>, <a href="2-sv.html#SP1_2">&#167;1.2</a><br/>Showme Command - <a href="2-sc.html#SP2">&#167;2</a>, <a href="2-sc.html#SP3">&#167;3</a>, <a href="2-sc.html#SP4_2">&#167;4.2</a>, <a href="2-sc.html#SP6_1">&#167;6.1</a>, <a href="2-sc.html#SP6_1_1">&#167;6.1.1</a>, <a href="2-sc.html#SP6_1_1_1">&#167;6.1.1.1</a><br/>Responses - <a href="4-rsp.html#SP7_1">&#167;7.1</a><br/>Looping Over Scope - <a href="4-los.html#SP3">&#167;3</a><br/>Adjectives - <a href="5-adj.html#SP8">&#167;8</a><br/>Conjugations - <a href="5-cnj.html#SP7">&#167;7</a>, <a href="5-cnj.html#SP12_1">&#167;12.1</a>, <a href="5-cnj.html#SP7_2_1">&#167;7.2.1</a>, <a href="5-cnj.html#SP7_2_2">&#167;7.2.2</a>, <a href="5-cnj.html#SP13">&#167;13</a><br/>Instances - <a href="5-ins.html#SP5">&#167;5</a><br/>Door Instances - <a href="5-di.html#SP3">&#167;3</a>, <a href="5-di.html#SP5">&#167;5</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2_7_2">&#167;2.7.2</a>, <a href="5-dbi.html#SP2_7_2_1">&#167;2.7.2.1</a>, <a href="5-dbi.html#SP2_8_1">&#167;2.8.1</a><br/>Dialogue - <a href="5-dli.html#SP3_13">&#167;3.13</a>, <a href="5-dli.html#SP3_14">&#167;3.14</a>, <a href="5-dli.html#SP5">&#167;5</a><br/>Rulebooks - <a href="5-rlb.html#SP8_4_1_3">&#167;8.4.1.3</a>, <a href="5-rlb.html#SP8_4_1_3_1">&#167;8.4.1.3.1</a><br/>Relations - <a href="5-rlt.html#SP6_4">&#167;6.4</a>, <a href="5-rlt.html#SP6_4_1">&#167;6.4.1</a>, <a href="5-rlt.html#SP6_4_4">&#167;6.4.4</a>, <a href="5-rlt.html#SP6_4_5">&#167;6.4.5</a>, <a href="5-rlt.html#SP6_4_5_1">&#167;6.4.5.1</a>, <a href="5-rlt.html#SP6_4_6">&#167;6.4.6</a>, <a href="5-rlt.html#SP6_4_7">&#167;6.4.7</a>, <a href="5-rlt.html#SP6_4_8">&#167;6.4.8</a>, <a href="5-rlt.html#SP6_4_9">&#167;6.4.9</a>, <a href="5-rlt.html#SP6_4_10">&#167;6.4.10</a>, <a href="5-rlt.html#SP6_4_11">&#167;6.4.11</a>, <a href="5-rlt.html#SP6_4_12">&#167;6.4.12</a>, <a href="5-rlt.html#SP6_4_9_1">&#167;6.4.9.1</a>, <a href="5-rlt.html#SP6_4_10_1">&#167;6.4.10.1</a>, <a href="5-rlt.html#SP6_4_12_1">&#167;6.4.12.1</a>, <a href="5-rlt.html#SP19_1">&#167;19.1</a>, <a href="5-rlt.html#SP19_2">&#167;19.2</a>, <a href="5-rlt.html#SP19_3">&#167;19.3</a>, <a href="5-rlt.html#SP19_4">&#167;19.4</a>, <a href="5-rlt.html#SP19_5">&#167;19.5</a>, <a href="5-rlt.html#SP21">&#167;21</a><br/>Literal Patterns - <a href="5-lp.html#SP4_1_1_3">&#167;4.1.1.3</a>, <a href="5-lp.html#SP4_1_1_3_3">&#167;4.1.1.3.3</a>, <a href="5-lp.html#SP4_1_1_3_1_1">&#167;4.1.1.3.1.1</a>, <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>, <a href="5-lp.html#SP4_2_1_1">&#167;4.2.1.1</a>, <a href="5-lp.html#SP4_2_1_2">&#167;4.2.1.2</a>, <a href="5-lp.html#SP4_2_1_3">&#167;4.2.1.3</a>, <a href="5-lp.html#SP4_2_1_3_1">&#167;4.2.1.3.1</a>, <a href="5-lp.html#SP4_2_1_3_1_1">&#167;4.2.1.3.1.1</a>, <a href="5-lp.html#SP4_2_1_3_2">&#167;4.2.1.3.2</a>, <a href="5-lp.html#SP4_2_1_3_2_1">&#167;4.2.1.3.2.1</a>, <a href="5-lp.html#SP4_2_1_3_2_2">&#167;4.2.1.3.2.2</a>, <a href="5-lp.html#SP4_2_1_2_1">&#167;4.2.1.2.1</a>, <a href="5-lp.html#SP4_2_1_2_2">&#167;4.2.1.2.2</a>, <a href="5-lp.html#SP5">&#167;5</a>, <a href="5-lp.html#SP5_2">&#167;5.2</a>, <a href="5-lp.html#SP7_1">&#167;7.1</a>, <a href="5-lp.html#SP7_2">&#167;7.2</a>, <a href="5-lp.html#SP7_3">&#167;7.3</a><br/>Kind Constructors - <a href="5-kc.html#SP32_3_6_1">&#167;32.3.6.1</a>, <a href="5-kc.html#SP32_3_6_2">&#167;32.3.6.2</a>, <a href="5-kc.html#SP32_3_7">&#167;32.3.7</a>, <a href="5-kc.html#SP32_3_7_1">&#167;32.3.7.1</a>, <a href="5-kc.html#SP32_3_8">&#167;32.3.8</a>, <a href="5-kc.html#SP32_3_24">&#167;32.3.24</a>, <a href="5-kc.html#SP32_3_26">&#167;32.3.26</a>, <a href="5-kc.html#SP32_3_27">&#167;32.3.27</a>, <a href="5-kc.html#SP32_3_28">&#167;32.3.28</a><br/>Kind IDs - <a href="5-ki.html#SP10">&#167;10</a><br/>Actions - <a href="5-act2.html#SP8_6">&#167;8.6</a>, <a href="5-act2.html#SP9">&#167;9</a><br/>Command Grammars - <a href="7-cg.html#SP12">&#167;12</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_2">&#167;6.2</a>, <a href="7-cgl.html#SP6_5">&#167;6.5</a>, <a href="7-cgl.html#SP6_6">&#167;6.6</a>, <a href="7-cgl.html#SP6_8">&#167;6.8</a>, <a href="7-cgl.html#SP14_3">&#167;14.3</a>, <a href="7-cgl.html#SP14_5">&#167;14.5</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_5">&#167;1.2.5</a>, <a href="7-cgt.html#SP1_2_8">&#167;1.2.8</a>, <a href="7-cgt.html#SP1_2_9">&#167;1.2.9</a>, <a href="7-cgt.html#SP1_2_10_2_1">&#167;1.2.10.2.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">&#167;1.2.10.2.2</a>, <a href="7-cgt.html#SP1_2_10_1_1_1">&#167;1.2.10.1.1.1</a>, <a href="7-cgt.html#SP1_3">&#167;1.3</a>, <a href="7-cgt.html#SP1_4_1">&#167;1.4.1</a>, <a href="7-cgt.html#SP1_4_2">&#167;1.4.2</a>, <a href="7-cgt.html#SP1_4_3">&#167;1.4.3</a>, <a href="7-cgt.html#SP1_5">&#167;1.5</a>, <a href="7-cgt.html#SP1_6">&#167;1.6</a><br/>Kind GPRs - <a href="7-kg.html#SP4">&#167;4</a>, <a href="7-kg.html#SP4_3">&#167;4.3</a>, <a href="7-kg.html#SP5_1_1_2">&#167;5.1.1.2</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_1">&#167;3.1</a>, <a href="7-nft.html#SP3_2">&#167;3.2</a><br/>Parse Name Properties - <a href="7-pnp.html#SP4">&#167;4</a>, <a href="7-pnp.html#SP4_3_1">&#167;4.3.1</a>, <a href="7-pnp.html#SP4_5">&#167;4.5</a>, <a href="7-pnp.html#SP5">&#167;5</a>, <a href="7-pnp.html#SP6_2">&#167;6.2</a>, <a href="7-pnp.html#SP6_3">&#167;6.3</a>, <a href="7-pnp.html#SP6_4">&#167;6.4</a>, <a href="7-pnp.html#SP6_5">&#167;6.5</a>, <a href="7-pnp.html#SP6_6">&#167;6.6</a>, <a href="7-pnp.html#SP8">&#167;8</a>, <a href="7-pnp.html#SP9">&#167;9</a>, <a href="7-pnp.html#SP10">&#167;10</a>, <a href="7-pnp.html#SP10_1">&#167;10.1</a>, <a href="7-pnp.html#SP11">&#167;11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. Either/or property testing. </b>This compiles code for the test <span class="extract"><span class="extract-syntax">N has prn</span></span>, that is, compiles a condition
which is true if the value of <span class="extract"><span class="extract-syntax">prn</span></span> for <span class="extract"><span class="extract-syntax">N</span></span> is <span class="extract"><span class="extract-syntax">true</span></span>, and correspondingly
false for <span class="extract"><span class="extract-syntax">false</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">EmitCode::test_if_iname_has_property</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">EmitCode::test_if_iname_has_property</span></span>:<br/>Parse Name Properties - <a href="7-pnp.html#SP8">&#167;8</a>, <a href="7-pnp.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP9" class="function-link"><span class="function-syntax">EmitCode::test_if_symbol_has_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">), </span><span class="identifier-syntax">prn</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">EmitCode::test_if_symbol_has_property</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">EmitCode::test_if_symbol_has_property</span></span>:<br/>Showme Command - <a href="2-sc.html#SP6_2">&#167;6.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-prp.html#SP4" class="function-link"><span class="function-syntax">RTProperties::stored_in_negation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NOT_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#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PROPERTYVALUE_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#SP8" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-ki.html#SP1" class="function-link"><span class="function-syntax">RTKindIDs::weak_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EitherOrProperties::get_negation</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</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="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PROPERTYVALUE_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#SP8" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-ki.html#SP1" class="function-link"><span class="function-syntax">RTKindIDs::weak_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP8" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</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>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. Casts. </b>These are value conversions from one kind to another. In some simple cases,
this can be achieved with an Inter <span class="extract"><span class="extract-syntax">cast</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">EmitCode::cast</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">EmitCode::cast</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP32_3_6_1">&#167;32.3.6.1</a>, <a href="5-kc.html#SP32_3_6_2">&#167;32.3.6.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::cast</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. </b>This allows more complex cases, though:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::cast_possible</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">EmitCode::cast_possible</span></span>:<br/><a href="2-ec.html#SP12">&#167;12</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::weaken</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::weaken</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">T</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">F</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax"> != </span><span class="identifier-syntax">F</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::definite</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">Kinds::Behaviour::definite</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">construct</span><span class="plain-syntax"> != </span><span class="identifier-syntax">CON_property</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><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>
</pre>
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. </b>Casts are in many cases implicit, so that nothing need be done, and the
following simply returns <span class="extract"><span class="extract-syntax">TRUE</span></span> to indicate success. But in a few cases, a
function call must be inserted, with a name like <span class="extract"><span class="extract-syntax">SNIPPET_TY_to_TEXT_TY</span></span>;
in such cases, this function must exist in the kits somewhere.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::casting_call</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">down</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ec.html#SP11" class="function-link"><span class="function-syntax">EmitCode::cast_possible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">Kinds::Behaviour::get_identifier</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Kinds::FloatingPoint::uses_floating_point</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::FloatingPoint::uses_floating_point</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="string-syntax">"%S_to_%S"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Kinds::Behaviour::get_identifier</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Kinds::Behaviour::get_identifier</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HierarchyLocations::find_by_name</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" 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><span class="identifier-syntax">down</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::uses_block_values</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)) </span><span class="identifier-syntax">Frames::emit_new_local_value</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</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>
</pre>
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. In reference context. </b>And these produce a <span class="extract"><span class="extract-syntax">ref</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">EmitCode::ref_iname</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">EmitCode::ref_iname</span></span>:<br/>Responses - <a href="4-rsp.html#SP7_1">&#167;7.1</a><br/>Group Together - <a href="4-gt.html#SP3">&#167;3</a><br/>Looping Over Scope - <a href="4-los.html#SP3">&#167;3</a><br/>Adjectives - <a href="5-adj.html#SP9">&#167;9</a><br/>Conjugations - <a href="5-cnj.html#SP8">&#167;8</a><br/>Rules - <a href="5-rls.html#SP15_1">&#167;15.1</a>, <a href="5-rls.html#SP17_3">&#167;17.3</a><br/>Rulebooks - <a href="5-rlb.html#SP8_4_1_3">&#167;8.4.1.3</a><br/>Literal Patterns - <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>, <a href="5-lp.html#SP4_2_1_1">&#167;4.2.1.1</a>, <a href="5-lp.html#SP4_2_1_3_1">&#167;4.2.1.3.1</a>, <a href="5-lp.html#SP4_2_1_3_2">&#167;4.2.1.3.2</a>, <a href="5-lp.html#SP4_2_1_2_2">&#167;4.2.1.2.2</a><br/>Command Grammars - <a href="7-cg.html#SP12">&#167;12</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_5">&#167;6.5</a>, <a href="7-cgl.html#SP6_6">&#167;6.6</a>, <a href="7-cgl.html#SP6_8">&#167;6.8</a>, <a href="7-cgl.html#SP7">&#167;7</a>, <a href="7-cgl.html#SP9">&#167;9</a>, <a href="7-cgl.html#SP14_3">&#167;14.3</a>, <a href="7-cgl.html#SP14_5">&#167;14.5</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_5">&#167;1.2.5</a>, <a href="7-cgt.html#SP1_2_8">&#167;1.2.8</a>, <a href="7-cgt.html#SP1_2_9">&#167;1.2.9</a>, <a href="7-cgt.html#SP1_2_10_1_1_1">&#167;1.2.10.1.1.1</a><br/>Kind GPRs - <a href="7-kg.html#SP4_3">&#167;4.3</a>, <a href="7-kg.html#SP5_1_1_1">&#167;5.1.1.1</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_1">&#167;3.1</a>, <a href="7-nft.html#SP3_2">&#167;3.2</a><br/>Parse Name Properties - <a href="7-pnp.html#SP4_3_1">&#167;4.3.1</a>, <a href="7-pnp.html#SP4_5">&#167;4.5</a>, <a href="7-pnp.html#SP5">&#167;5</a>, <a href="7-pnp.html#SP6_5">&#167;6.5</a>, <a href="7-pnp.html#SP8">&#167;8</a>, <a href="7-pnp.html#SP9">&#167;9</a>, <a href="7-pnp.html#SP10">&#167;10</a>, <a href="7-pnp.html#SP10_1">&#167;10.1</a>, <a href="7-pnp.html#SP11">&#167;11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</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">Produce::ref_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::ref_symbol</span><button class="popup" onclick="togglePopup('usagePopup21')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup21">Usage of <span class="code-font"><span class="function-syntax">EmitCode::ref_symbol</span></span>:<br/>Shared Variables - <a href="2-sv.html#SP1_1">&#167;1.1</a>, <a href="2-sv.html#SP1_2">&#167;1.2</a><br/>Showme Command - <a href="2-sc.html#SP4_2">&#167;4.2</a>, <a href="2-sc.html#SP6_2_1">&#167;6.2.1</a><br/>Responses - <a href="4-rsp.html#SP7_1">&#167;7.1</a><br/>Adjectives - <a href="5-adj.html#SP8">&#167;8</a><br/>Conjugations - <a href="5-cnj.html#SP12_1">&#167;12.1</a><br/>Door Instances - <a href="5-di.html#SP3">&#167;3</a>, <a href="5-di.html#SP5">&#167;5</a><br/>Scene Instances - <a href="5-si.html#SP4_2">&#167;4.2</a>, <a href="5-si.html#SP4_3">&#167;4.3</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2_8_1">&#167;2.8.1</a><br/>Rulebooks - <a href="5-rlb.html#SP8_4_1_1">&#167;8.4.1.1</a>, <a href="5-rlb.html#SP8_4_1_3">&#167;8.4.1.3</a><br/>Literal Patterns - <a href="5-lp.html#SP4_1_1_3">&#167;4.1.1.3</a>, <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>, <a href="5-lp.html#SP4_2_1_2">&#167;4.2.1.2</a>, <a href="5-lp.html#SP4_2_1_3">&#167;4.2.1.3</a>, <a href="5-lp.html#SP4_2_1_3_1">&#167;4.2.1.3.1</a>, <a href="5-lp.html#SP4_2_1_3_1_1">&#167;4.2.1.3.1.1</a>, <a href="5-lp.html#SP4_2_1_3_2">&#167;4.2.1.3.2</a>, <a href="5-lp.html#SP4_2_1_3_2_1">&#167;4.2.1.3.2.1</a>, <a href="5-lp.html#SP4_2_1_3_2_2">&#167;4.2.1.3.2.2</a>, <a href="5-lp.html#SP4_2_1_2_1">&#167;4.2.1.2.1</a>, <a href="5-lp.html#SP4_2_1_2_2">&#167;4.2.1.2.2</a><br/>Command Grammars - <a href="7-cg.html#SP10">&#167;10</a>, <a href="7-cg.html#SP12">&#167;12</a>, <a href="7-cg.html#SP13">&#167;13</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_5">&#167;6.5</a>, <a href="7-cgl.html#SP6_6">&#167;6.6</a>, <a href="7-cgl.html#SP14_3">&#167;14.3</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2">&#167;1.2</a>, <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_5">&#167;1.2.5</a>, <a href="7-cgt.html#SP1_2_8">&#167;1.2.8</a>, <a href="7-cgt.html#SP1_2_9">&#167;1.2.9</a>, <a href="7-cgt.html#SP1_2_10_1_1">&#167;1.2.10.1.1</a>, <a href="7-cgt.html#SP1_2_10_2_1">&#167;1.2.10.2.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">&#167;1.2.10.2.2</a>, <a href="7-cgt.html#SP1_2_10_1_1_1">&#167;1.2.10.1.1.1</a>, <a href="7-cgt.html#SP1_3">&#167;1.3</a>, <a href="7-cgt.html#SP1_4_1">&#167;1.4.1</a>, <a href="7-cgt.html#SP1_4_2">&#167;1.4.2</a>, <a href="7-cgt.html#SP1_4_3">&#167;1.4.3</a>, <a href="7-cgt.html#SP1_5">&#167;1.5</a>, <a href="7-cgt.html#SP1_6">&#167;1.6</a><br/>Kind GPRs - <a href="7-kg.html#SP1_1">&#167;1.1</a>, <a href="7-kg.html#SP4">&#167;4</a>, <a href="7-kg.html#SP4_1">&#167;4.1</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_1">&#167;3.1</a>, <a href="7-nft.html#SP3_2">&#167;3.2</a>, <a href="7-nft.html#SP3_3">&#167;3.3</a><br/>Parse Name Properties - <a href="7-pnp.html#SP4">&#167;4</a>, <a href="7-pnp.html#SP4_3">&#167;4.3</a>, <a href="7-pnp.html#SP4_3_1">&#167;4.3.1</a>, <a href="7-pnp.html#SP4_4">&#167;4.4</a>, <a href="7-pnp.html#SP5">&#167;5</a>, <a href="7-pnp.html#SP6">&#167;6</a>, <a href="7-pnp.html#SP6_2">&#167;6.2</a>, <a href="7-pnp.html#SP6_4">&#167;6.4</a>, <a href="7-pnp.html#SP8">&#167;8</a>, <a href="7-pnp.html#SP10">&#167;10</a>, <a href="7-pnp.html#SP10_2">&#167;10.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::ref_symbol</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. Invocations. </b>These three produce <span class="extract"><span class="extract-syntax">inv</span></span> opcodes:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::inv</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">EmitCode::inv</span></span>:<br/><a href="2-ec.html#SP9">&#167;9</a><br/>Shared Variables - <a href="2-sv.html#SP1">&#167;1</a>, <a href="2-sv.html#SP1_1">&#167;1.1</a>, <a href="2-sv.html#SP1_2">&#167;1.2</a><br/>Showme Command - <a href="2-sc.html#SP2">&#167;2</a>, <a href="2-sc.html#SP3">&#167;3</a>, <a href="2-sc.html#SP4">&#167;4</a>, <a href="2-sc.html#SP4_2">&#167;4.2</a>, <a href="2-sc.html#SP6_1">&#167;6.1</a>, <a href="2-sc.html#SP6_1_1">&#167;6.1.1</a>, <a href="2-sc.html#SP6_1_1_1">&#167;6.1.1.1</a>, <a href="2-sc.html#SP6_2">&#167;6.2</a>, <a href="2-sc.html#SP6_2_1">&#167;6.2.1</a><br/>Short Names - <a href="2-sn.html#SP4">&#167;4</a>, <a href="2-sn.html#SP4_1">&#167;4.1</a>, <a href="2-sn.html#SP4_2">&#167;4.2</a><br/>Text Substitutions - <a href="4-ts.html#SP7_2">&#167;7.2</a><br/>Responses - <a href="4-rsp.html#SP7_1">&#167;7.1</a><br/>Box Quotations - <a href="4-bq.html#SP2">&#167;2</a><br/>Group Together - <a href="4-gt.html#SP3">&#167;3</a><br/>Looping Over Scope - <a href="4-los.html#SP3">&#167;3</a><br/>Adjectives - <a href="5-adj.html#SP6_1_2">&#167;6.1.2</a>, <a href="5-adj.html#SP8">&#167;8</a>, <a href="5-adj.html#SP9">&#167;9</a>, <a href="5-adj.html#SP14">&#167;14</a>, <a href="5-adj.html#SP15">&#167;15</a><br/>Chronology - <a href="5-chr.html#SP4_1">&#167;4.1</a>, <a href="5-chr.html#SP7_2">&#167;7.2</a>, <a href="5-chr.html#SP8">&#167;8</a>, <a href="5-chr.html#SP9">&#167;9</a><br/>Conjugations - <a href="5-cnj.html#SP7">&#167;7</a>, <a href="5-cnj.html#SP8">&#167;8</a>, <a href="5-cnj.html#SP12_1">&#167;12.1</a>, <a href="5-cnj.html#SP7_2">&#167;7.2</a>, <a href="5-cnj.html#SP7_2_1">&#167;7.2.1</a>, <a href="5-cnj.html#SP7_2_2">&#167;7.2.2</a>, <a href="5-cnj.html#SP13">&#167;13</a><br/>Instances - <a href="5-ins.html#SP5">&#167;5</a><br/>Backdrop Instances - <a href="5-bi.html#SP2_1">&#167;2.1</a><br/>Door Instances - <a href="5-di.html#SP3">&#167;3</a>, <a href="5-di.html#SP5">&#167;5</a><br/>Region Instances - <a href="5-ri.html#SP2">&#167;2</a><br/>Scene Instances - <a href="5-si.html#SP3_1">&#167;3.1</a>, <a href="5-si.html#SP4">&#167;4</a>, <a href="5-si.html#SP4_2">&#167;4.2</a>, <a href="5-si.html#SP4_3">&#167;4.3</a>, <a href="5-si.html#SP6_1">&#167;6.1</a>, <a href="5-si.html#SP6_3">&#167;6.3</a>, <a href="5-si.html#SP6_4">&#167;6.4</a>, <a href="5-si.html#SP6_5">&#167;6.5</a>, <a href="5-si.html#SP7">&#167;7</a>, <a href="5-si.html#SP7_1">&#167;7.1</a>, <a href="5-si.html#SP7_2">&#167;7.2</a>, <a href="5-si.html#SP7_2_1">&#167;7.2.1</a>, <a href="5-si.html#SP8">&#167;8</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2_7_1">&#167;2.7.1</a>, <a href="5-dbi.html#SP2_7_2">&#167;2.7.2</a>, <a href="5-dbi.html#SP2_7_2_1">&#167;2.7.2.1</a>, <a href="5-dbi.html#SP2_7_3_1">&#167;2.7.3.1</a>, <a href="5-dbi.html#SP2_7_4">&#167;2.7.4</a>, <a href="5-dbi.html#SP2_8_1">&#167;2.8.1</a><br/>Dialogue - <a href="5-dli.html#SP3_10_1">&#167;3.10.1</a>, <a href="5-dli.html#SP3_14">&#167;3.14</a>, <a href="5-dli.html#SP3_14_3">&#167;3.14.3</a>, <a href="5-dli.html#SP5">&#167;5</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_6_1">&#167;3.6.1</a>, <a href="5-dci.html#SP3_7">&#167;3.7</a>, <a href="5-dci.html#SP3_8">&#167;3.8</a><br/>Rules - <a href="5-rls.html#SP12_4">&#167;12.4</a>, <a href="5-rls.html#SP14">&#167;14</a>, <a href="5-rls.html#SP14_2">&#167;14.2</a>, <a href="5-rls.html#SP15">&#167;15</a>, <a href="5-rls.html#SP17_1">&#167;17.1</a>, <a href="5-rls.html#SP15_1">&#167;15.1</a>, <a href="5-rls.html#SP17_3">&#167;17.3</a>, <a href="5-rls.html#SP17_4">&#167;17.4</a>, <a href="5-rls.html#SP15_2">&#167;15.2</a>, <a href="5-rls.html#SP15_2_1">&#167;15.2.1</a>, <a href="5-rls.html#SP17_2_1">&#167;17.2.1</a><br/>Rulebooks - <a href="5-rlb.html#SP8_4_1_1">&#167;8.4.1.1</a>, <a href="5-rlb.html#SP8_4_1_2">&#167;8.4.1.2</a>, <a href="5-rlb.html#SP8_4_1_3">&#167;8.4.1.3</a>, <a href="5-rlb.html#SP8_4_1_5">&#167;8.4.1.5</a>, <a href="5-rlb.html#SP8_4_1_3_1">&#167;8.4.1.3.1</a><br/>Variables - <a href="5-vrb.html#SP8">&#167;8</a>, <a href="5-vrb.html#SP14_1">&#167;14.1</a><br/>Relations - <a href="5-rlt.html#SP6_2">&#167;6.2</a>, <a href="5-rlt.html#SP6_4">&#167;6.4</a>, <a href="5-rlt.html#SP6_4_4">&#167;6.4.4</a>, <a href="5-rlt.html#SP6_4_5">&#167;6.4.5</a>, <a href="5-rlt.html#SP6_4_6">&#167;6.4.6</a>, <a href="5-rlt.html#SP6_4_7">&#167;6.4.7</a>, <a href="5-rlt.html#SP6_4_8">&#167;6.4.8</a>, <a href="5-rlt.html#SP6_4_9">&#167;6.4.9</a>, <a href="5-rlt.html#SP6_4_10">&#167;6.4.10</a>, <a href="5-rlt.html#SP6_4_11">&#167;6.4.11</a>, <a href="5-rlt.html#SP6_4_12">&#167;6.4.12</a>, <a href="5-rlt.html#SP6_4_9_1">&#167;6.4.9.1</a>, <a href="5-rlt.html#SP6_4_10_1">&#167;6.4.10.1</a>, <a href="5-rlt.html#SP6_4_12_1">&#167;6.4.12.1</a>, <a href="5-rlt.html#SP19_1">&#167;19.1</a>, <a href="5-rlt.html#SP19_2">&#167;19.2</a>, <a href="5-rlt.html#SP19_3">&#167;19.3</a>, <a href="5-rlt.html#SP19_4">&#167;19.4</a>, <a href="5-rlt.html#SP19_5">&#167;19.5</a>, <a href="5-rlt.html#SP20">&#167;20</a>, <a href="5-rlt.html#SP21">&#167;21</a><br/>Literal Patterns - <a href="5-lp.html#SP4_1_1">&#167;4.1.1</a>, <a href="5-lp.html#SP4_1_1_1">&#167;4.1.1.1</a>, <a href="5-lp.html#SP4_1_1_2">&#167;4.1.1.2</a>, <a href="5-lp.html#SP4_1_1_3">&#167;4.1.1.3</a>, <a href="5-lp.html#SP4_1_1_3_1">&#167;4.1.1.3.1</a>, <a href="5-lp.html#SP4_1_1_3_2">&#167;4.1.1.3.2</a>, <a href="5-lp.html#SP4_1_1_3_3">&#167;4.1.1.3.3</a>, <a href="5-lp.html#SP4_1_1_3_1_1">&#167;4.1.1.3.1.1</a>, <a href="5-lp.html#SP4_1_1_4">&#167;4.1.1.4</a>, <a href="5-lp.html#SP4_2">&#167;4.2</a>, <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>, <a href="5-lp.html#SP4_2_1_1">&#167;4.2.1.1</a>, <a href="5-lp.html#SP4_2_1_2">&#167;4.2.1.2</a>, <a href="5-lp.html#SP4_2_1_3">&#167;4.2.1.3</a>, <a href="5-lp.html#SP4_2_1_3_1">&#167;4.2.1.3.1</a>, <a href="5-lp.html#SP4_2_1_3_1_1">&#167;4.2.1.3.1.1</a>, <a href="5-lp.html#SP4_2_1_3_2">&#167;4.2.1.3.2</a>, <a href="5-lp.html#SP4_2_1_3_2_1">&#167;4.2.1.3.2.1</a>, <a href="5-lp.html#SP4_2_1_3_2_2">&#167;4.2.1.3.2.2</a>, <a href="5-lp.html#SP4_2_1_2_1">&#167;4.2.1.2.1</a>, <a href="5-lp.html#SP4_2_1_2_2">&#167;4.2.1.2.2</a>, <a href="5-lp.html#SP5">&#167;5</a>, <a href="5-lp.html#SP5_2">&#167;5.2</a>, <a href="5-lp.html#SP7_1">&#167;7.1</a>, <a href="5-lp.html#SP7_2">&#167;7.2</a>, <a href="5-lp.html#SP7_3">&#167;7.3</a><br/>Kind Constructors - <a href="5-kc.html#SP32_3_6_1">&#167;32.3.6.1</a>, <a href="5-kc.html#SP32_3_6_2">&#167;32.3.6.2</a>, <a href="5-kc.html#SP32_3_7">&#167;32.3.7</a>, <a href="5-kc.html#SP32_3_7_1">&#167;32.3.7.1</a>, <a href="5-kc.html#SP32_3_8">&#167;32.3.8</a>, <a href="5-kc.html#SP32_3_24">&#167;32.3.24</a>, <a href="5-kc.html#SP32_3_26">&#167;32.3.26</a>, <a href="5-kc.html#SP32_3_27">&#167;32.3.27</a>, <a href="5-kc.html#SP32_3_28">&#167;32.3.28</a><br/>Kind IDs - <a href="5-ki.html#SP10">&#167;10</a><br/>Actions - <a href="5-act2.html#SP8_5">&#167;8.5</a>, <a href="5-act2.html#SP8_6">&#167;8.6</a>, <a href="5-act2.html#SP8_6_1">&#167;8.6.1</a>, <a href="5-act2.html#SP9">&#167;9</a><br/>Named Action Patterns - <a href="5-nap.html#SP3">&#167;3</a><br/>Command Grammars - <a href="7-cg.html#SP10">&#167;10</a>, <a href="7-cg.html#SP12">&#167;12</a>, <a href="7-cg.html#SP13">&#167;13</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_2">&#167;6.2</a>, <a href="7-cgl.html#SP6_5">&#167;6.5</a>, <a href="7-cgl.html#SP6_6">&#167;6.6</a>, <a href="7-cgl.html#SP6_8">&#167;6.8</a>, <a href="7-cgl.html#SP7">&#167;7</a>, <a href="7-cgl.html#SP9">&#167;9</a>, <a href="7-cgl.html#SP10">&#167;10</a>, <a href="7-cgl.html#SP11">&#167;11</a>, <a href="7-cgl.html#SP13">&#167;13</a>, <a href="7-cgl.html#SP14_3">&#167;14.3</a>, <a href="7-cgl.html#SP14_5">&#167;14.5</a>, <a href="7-cgl.html#SP14_5_1">&#167;14.5.1</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_1">&#167;1.1</a>, <a href="7-cgt.html#SP1_1_1_1">&#167;1.1.1.1</a>, <a href="7-cgt.html#SP1_2">&#167;1.2</a>, <a href="7-cgt.html#SP1_2_1">&#167;1.2.1</a>, <a href="7-cgt.html#SP1_2_2">&#167;1.2.2</a>, <a href="7-cgt.html#SP1_2_3">&#167;1.2.3</a>, <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_5">&#167;1.2.5</a>, <a href="7-cgt.html#SP1_2_6">&#167;1.2.6</a>, <a href="7-cgt.html#SP1_2_7">&#167;1.2.7</a>, <a href="7-cgt.html#SP1_2_8">&#167;1.2.8</a>, <a href="7-cgt.html#SP1_2_9">&#167;1.2.9</a>, <a href="7-cgt.html#SP1_2_10_1_1">&#167;1.2.10.1.1</a>, <a href="7-cgt.html#SP1_2_10_2_1">&#167;1.2.10.2.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">&#167;1.2.10.2.2</a>, <a href="7-cgt.html#SP1_2_10_1_1_1">&#167;1.2.10.1.1.1</a>, <a href="7-cgt.html#SP1_3">&#167;1.3</a>, <a href="7-cgt.html#SP1_4_1">&#167;1.4.1</a>, <a href="7-cgt.html#SP1_4_2">&#167;1.4.2</a>, <a href="7-cgt.html#SP1_4_3">&#167;1.4.3</a>, <a href="7-cgt.html#SP1_5">&#167;1.5</a>, <a href="7-cgt.html#SP1_6">&#167;1.6</a><br/>Kind GPRs - <a href="7-kg.html#SP1_1">&#167;1.1</a>, <a href="7-kg.html#SP1_2">&#167;1.2</a>, <a href="7-kg.html#SP4">&#167;4</a>, <a href="7-kg.html#SP4_1">&#167;4.1</a>, <a href="7-kg.html#SP4_3">&#167;4.3</a>, <a href="7-kg.html#SP4_4">&#167;4.4</a>, <a href="7-kg.html#SP5_1_1_1">&#167;5.1.1.1</a>, <a href="7-kg.html#SP5_1_1_2">&#167;5.1.1.2</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_1">&#167;3.1</a>, <a href="7-nft.html#SP3_2">&#167;3.2</a>, <a href="7-nft.html#SP3_3">&#167;3.3</a><br/>Parse Name Properties - <a href="7-pnp.html#SP4">&#167;4</a>, <a href="7-pnp.html#SP4_1">&#167;4.1</a>, <a href="7-pnp.html#SP4_2">&#167;4.2</a>, <a href="7-pnp.html#SP4_3">&#167;4.3</a>, <a href="7-pnp.html#SP4_3_1">&#167;4.3.1</a>, <a href="7-pnp.html#SP4_4">&#167;4.4</a>, <a href="7-pnp.html#SP4_5">&#167;4.5</a>, <a href="7-pnp.html#SP5">&#167;5</a>, <a href="7-pnp.html#SP6">&#167;6</a>, <a href="7-pnp.html#SP6_1">&#167;6.1</a>, <a href="7-pnp.html#SP6_2">&#167;6.2</a>, <a href="7-pnp.html#SP6_3">&#167;6.3</a>, <a href="7-pnp.html#SP6_4">&#167;6.4</a>, <a href="7-pnp.html#SP6_5">&#167;6.5</a>, <a href="7-pnp.html#SP6_6">&#167;6.6</a>, <a href="7-pnp.html#SP8">&#167;8</a>, <a href="7-pnp.html#SP8_1">&#167;8.1</a>, <a href="7-pnp.html#SP9">&#167;9</a>, <a href="7-pnp.html#SP10">&#167;10</a>, <a href="7-pnp.html#SP10_1">&#167;10.1</a>, <a href="7-pnp.html#SP10_2">&#167;10.2</a>, <a href="7-pnp.html#SP11">&#167;11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">bip</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">bip</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">EmitCode::call</span><button class="popup" onclick="togglePopup('usagePopup23')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup23">Usage of <span class="code-font"><span class="function-syntax">EmitCode::call</span></span>:<br/><a href="2-ec.html#SP12">&#167;12</a><br/>Shared Variables - <a href="2-sv.html#SP1_2">&#167;1.2</a><br/>The Heap - <a href="2-th.html#SP5">&#167;5</a><br/>Showme Command - <a href="2-sc.html#SP6_1">&#167;6.1</a>, <a href="2-sc.html#SP6_1_1">&#167;6.1.1</a>, <a href="2-sc.html#SP6_1_1_1">&#167;6.1.1.1</a>, <a href="2-sc.html#SP6_2">&#167;6.2</a><br/>Short Names - <a href="2-sn.html#SP4_1">&#167;4.1</a><br/>Text Substitutions - <a href="4-ts.html#SP2_1">&#167;2.1</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a>, <a href="4-rsp.html#SP7_1">&#167;7.1</a><br/>Adjectives - <a href="5-adj.html#SP8">&#167;8</a>, <a href="5-adj.html#SP9">&#167;9</a><br/>Chronology - <a href="5-chr.html#SP3_4">&#167;3.4</a>, <a href="5-chr.html#SP5">&#167;5</a><br/>Conjugations - <a href="5-cnj.html#SP8">&#167;8</a>, <a href="5-cnj.html#SP12_1">&#167;12.1</a><br/>Backdrop Instances - <a href="5-bi.html#SP2_1">&#167;2.1</a><br/>Region Instances - <a href="5-ri.html#SP2">&#167;2</a><br/>Scene Instances - <a href="5-si.html#SP4_3">&#167;4.3</a>, <a href="5-si.html#SP6_1">&#167;6.1</a>, <a href="5-si.html#SP6_2">&#167;6.2</a>, <a href="5-si.html#SP8">&#167;8</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2_8_1">&#167;2.8.1</a><br/>Dialogue - <a href="5-dli.html#SP3_13">&#167;3.13</a>, <a href="5-dli.html#SP3_14_3">&#167;3.14.3</a><br/>Rules - <a href="5-rls.html#SP12_4">&#167;12.4</a>, <a href="5-rls.html#SP14_2">&#167;14.2</a>, <a href="5-rls.html#SP15">&#167;15</a>, <a href="5-rls.html#SP15_2_1">&#167;15.2.1</a>, <a href="5-rls.html#SP17_2_1">&#167;17.2.1</a><br/>Rulebooks - <a href="5-rlb.html#SP8_4_1_3">&#167;8.4.1.3</a>, <a href="5-rlb.html#SP8_4_1_3_1">&#167;8.4.1.3.1</a>, <a href="5-rlb.html#SP16">&#167;16</a><br/>Variables - <a href="5-vrb.html#SP8">&#167;8</a><br/>Relations - <a href="5-rlt.html#SP6_1">&#167;6.1</a>, <a href="5-rlt.html#SP6_2">&#167;6.2</a>, <a href="5-rlt.html#SP6_4_1">&#167;6.4.1</a>, <a href="5-rlt.html#SP6_4_5_1">&#167;6.4.5.1</a>, <a href="5-rlt.html#SP6_4_6">&#167;6.4.6</a>, <a href="5-rlt.html#SP6_4_10">&#167;6.4.10</a>, <a href="5-rlt.html#SP6_4_11">&#167;6.4.11</a>, <a href="5-rlt.html#SP6_4_12">&#167;6.4.12</a>, <a href="5-rlt.html#SP6_4_9_1">&#167;6.4.9.1</a>, <a href="5-rlt.html#SP6_4_10_1">&#167;6.4.10.1</a>, <a href="5-rlt.html#SP6_4_12_1">&#167;6.4.12.1</a>, <a href="5-rlt.html#SP19_4">&#167;19.4</a>, <a href="5-rlt.html#SP19_5">&#167;19.5</a><br/>Literal Patterns - <a href="5-lp.html#SP4_1_1_3_1">&#167;4.1.1.3.1</a>, <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>, <a href="5-lp.html#SP4_2_1_3_1">&#167;4.2.1.3.1</a>, <a href="5-lp.html#SP4_2_1_3_1_1">&#167;4.2.1.3.1.1</a>, <a href="5-lp.html#SP4_2_1_3_2">&#167;4.2.1.3.2</a>, <a href="5-lp.html#SP4_2_1_3_2_2">&#167;4.2.1.3.2.2</a>, <a href="5-lp.html#SP4_2_1_2_1">&#167;4.2.1.2.1</a>, <a href="5-lp.html#SP5_2">&#167;5.2</a><br/>Kind Constructors - <a href="5-kc.html#SP32_3_6_1">&#167;32.3.6.1</a>, <a href="5-kc.html#SP32_3_6_2">&#167;32.3.6.2</a>, <a href="5-kc.html#SP32_3_7">&#167;32.3.7</a>, <a href="5-kc.html#SP32_3_8">&#167;32.3.8</a>, <a href="5-kc.html#SP32_3_24">&#167;32.3.24</a><br/>Actions - <a href="5-act2.html#SP8_5">&#167;8.5</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP9">&#167;9</a>, <a href="7-cgl.html#SP10">&#167;10</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_1">&#167;1.1</a>, <a href="7-cgt.html#SP1_2">&#167;1.2</a>, <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_5">&#167;1.2.5</a>, <a href="7-cgt.html#SP1_2_8">&#167;1.2.8</a>, <a href="7-cgt.html#SP1_2_9">&#167;1.2.9</a>, <a href="7-cgt.html#SP1_2_10_1_1_1">&#167;1.2.10.1.1.1</a>, <a href="7-cgt.html#SP1_3">&#167;1.3</a>, <a href="7-cgt.html#SP1_4_3">&#167;1.4.3</a>, <a href="7-cgt.html#SP1_5">&#167;1.5</a><br/>Kind GPRs - <a href="7-kg.html#SP4">&#167;4</a>, <a href="7-kg.html#SP5_1_1_1">&#167;5.1.1.1</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_1">&#167;3.1</a>, <a href="7-nft.html#SP3_2">&#167;3.2</a>, <a href="7-nft.html#SP4">&#167;4</a><br/>Parse Name Properties - <a href="7-pnp.html#SP4_3_1">&#167;4.3.1</a>, <a href="7-pnp.html#SP6_2">&#167;6.2</a>, <a href="7-pnp.html#SP6_6">&#167;6.6</a>, <a href="7-pnp.html#SP8">&#167;8</a>, <a href="7-pnp.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">fn_iname</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_call_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">fn_iname</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">EmitCode::call_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_call_symbol</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. </b>These conveniences functions produce an invocation and argument all in one,
so they generate several opcodes. Here we return <span class="extract"><span class="extract-syntax">true</span></span> or <span class="extract"><span class="extract-syntax">false</span></span> from the
current function:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::rtrue</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">EmitCode::rtrue</span></span>:<br/>Short Names - <a href="2-sn.html#SP4">&#167;4</a><br/>Text Substitutions - <a href="4-ts.html#SP7_2">&#167;7.2</a>, <a href="4-ts.html#SP7_3">&#167;7.3</a><br/>Adjectives - <a href="5-adj.html#SP15">&#167;15</a><br/>Chronology - <a href="5-chr.html#SP8">&#167;8</a><br/>Conjugations - <a href="5-cnj.html#SP7">&#167;7</a><br/>Backdrop Instances - <a href="5-bi.html#SP2_1">&#167;2.1</a><br/>Region Instances - <a href="5-ri.html#SP2">&#167;2</a><br/>Scene Instances - <a href="5-si.html#SP4_2">&#167;4.2</a>, <a href="5-si.html#SP4_3">&#167;4.3</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2_7">&#167;2.7</a>, <a href="5-dbi.html#SP2_8_1">&#167;2.8.1</a><br/>Dialogue - <a href="5-dli.html#SP3_10">&#167;3.10</a>, <a href="5-dli.html#SP3_14">&#167;3.14</a>, <a href="5-dli.html#SP5">&#167;5</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_6">&#167;3.6</a>, <a href="5-dci.html#SP3_8">&#167;3.8</a><br/>Rulebooks - <a href="5-rlb.html#SP16">&#167;16</a><br/>Relations - <a href="5-rlt.html#SP6_4_2">&#167;6.4.2</a>, <a href="5-rlt.html#SP6_4_3">&#167;6.4.3</a>, <a href="5-rlt.html#SP6_4_4">&#167;6.4.4</a>, <a href="5-rlt.html#SP6_4_7">&#167;6.4.7</a>, <a href="5-rlt.html#SP6_4_9_1">&#167;6.4.9.1</a>, <a href="5-rlt.html#SP19_3">&#167;19.3</a>, <a href="5-rlt.html#SP19_4">&#167;19.4</a>, <a href="5-rlt.html#SP19_5">&#167;19.5</a><br/>Literal Patterns - <a href="5-lp.html#SP4_1">&#167;4.1</a>, <a href="5-lp.html#SP4_1_1_4">&#167;4.1.1.4</a>, <a href="5-lp.html#SP5">&#167;5</a>, <a href="5-lp.html#SP5_2">&#167;5.2</a>, <a href="5-lp.html#SP7_1">&#167;7.1</a>, <a href="5-lp.html#SP7_2">&#167;7.2</a><br/>Named Action Patterns - <a href="5-nap.html#SP3">&#167;3</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP9">&#167;9</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_2">&#167;3.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::rtrue</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::rfalse</span><button class="popup" onclick="togglePopup('usagePopup25')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup25">Usage of <span class="code-font"><span class="function-syntax">EmitCode::rfalse</span></span>:<br/>Group Together - <a href="4-gt.html#SP3">&#167;3</a><br/>Adjectives - <a href="5-adj.html#SP6_1">&#167;6.1</a>, <a href="5-adj.html#SP15">&#167;15</a><br/>Chronology - <a href="5-chr.html#SP8">&#167;8</a><br/>Conjugations - <a href="5-cnj.html#SP7">&#167;7</a><br/>Equations - <a href="5-eqt.html#SP1">&#167;1</a><br/>Backdrop Instances - <a href="5-bi.html#SP2_1">&#167;2.1</a>, <a href="5-bi.html#SP2_2">&#167;2.2</a><br/>Region Instances - <a href="5-ri.html#SP2">&#167;2</a><br/>Scene Instances - <a href="5-si.html#SP3">&#167;3</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2_7_1">&#167;2.7.1</a>, <a href="5-dbi.html#SP2_7_2_1">&#167;2.7.2.1</a>, <a href="5-dbi.html#SP2_7_3_1">&#167;2.7.3.1</a>, <a href="5-dbi.html#SP2_7_4">&#167;2.7.4</a>, <a href="5-dbi.html#SP2_8">&#167;2.8</a>, <a href="5-dbi.html#SP2_8_1">&#167;2.8.1</a><br/>Dialogue - <a href="5-dli.html#SP3_10_1">&#167;3.10.1</a>, <a href="5-dli.html#SP3_14_3">&#167;3.14.3</a>, <a href="5-dli.html#SP5">&#167;5</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_6_1">&#167;3.6.1</a>, <a href="5-dci.html#SP3_8">&#167;3.8</a><br/>Rulebooks - <a href="5-rlb.html#SP16">&#167;16</a><br/>Relations - <a href="5-rlt.html#SP6_4">&#167;6.4</a>, <a href="5-rlt.html#SP6_4_2">&#167;6.4.2</a>, <a href="5-rlt.html#SP6_4_3">&#167;6.4.3</a>, <a href="5-rlt.html#SP6_4_4">&#167;6.4.4</a>, <a href="5-rlt.html#SP6_4_9_1">&#167;6.4.9.1</a>, <a href="5-rlt.html#SP19_3">&#167;19.3</a>, <a href="5-rlt.html#SP21">&#167;21</a><br/>Named Action Patterns - <a href="5-nap.html#SP3">&#167;3</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_2">&#167;3.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::rfalse</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. </b>And here we pull or pull a global variable to or from the Inter call stack:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitCode::push</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><span class="identifier-syntax">Produce::push</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</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">EmitCode::pull</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><span class="identifier-syntax">Produce::pull</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>&#167;17. Labels. </b>Labels can be referred to before they are defined, but must be reserved in
advance:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">EmitCode::reserve_label</span><button class="popup" onclick="togglePopup('usagePopup26')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup26">Usage of <span class="code-font"><span class="function-syntax">EmitCode::reserve_label</span></span>:<br/>General Parsing Routines - <a href="2-gpr.html#SP4">&#167;4</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2_8_1">&#167;2.8.1</a><br/>Literal Patterns - <a href="5-lp.html#SP4_2">&#167;4.2</a>, <a href="5-lp.html#SP4_2_1_3_2_1">&#167;4.2.1.3.2.1</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP14_3">&#167;14.3</a>, <a href="7-cgl.html#SP14_5_1">&#167;14.5.1</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_5">&#167;1.2.5</a>, <a href="7-cgt.html#SP1_2_10">&#167;1.2.10</a><br/>Kind GPRs - <a href="7-kg.html#SP5_1_1_1">&#167;5.1.1.1</a><br/>Parse Name Properties - <a href="7-pnp.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">identifier</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">Produce::reserve_label</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">identifier</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">EmitCode::place_label</span><button class="popup" onclick="togglePopup('usagePopup27')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup27">Usage of <span class="code-font"><span class="function-syntax">EmitCode::place_label</span></span>:<br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2_8_1">&#167;2.8.1</a><br/>Literal Patterns - <a href="5-lp.html#SP4_2">&#167;4.2</a>, <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>, <a href="5-lp.html#SP4_2_1_3_2_1">&#167;4.2.1.3.2.1</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_5">&#167;6.5</a>, <a href="7-cgl.html#SP6_6">&#167;6.6</a>, <a href="7-cgl.html#SP6_8">&#167;6.8</a>, <a href="7-cgl.html#SP14_3">&#167;14.3</a>, <a href="7-cgl.html#SP14_5">&#167;14.5</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_5">&#167;1.2.5</a>, <a href="7-cgt.html#SP1_2_10_1_1_1">&#167;1.2.10.1.1.1</a><br/>Kind GPRs - <a href="7-kg.html#SP5_1_1_1">&#167;5.1.1.1</a><br/>Parse Name Properties - <a href="7-pnp.html#SP5">&#167;5</a>, <a href="7-pnp.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lab_s</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::place_label</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">lab_s</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">EmitCode::lab</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">EmitCode::lab</span></span>:<br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2_8_1">&#167;2.8.1</a><br/>Literal Patterns - <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>, <a href="5-lp.html#SP4_2_1_1">&#167;4.2.1.1</a>, <a href="5-lp.html#SP4_2_1_2">&#167;4.2.1.2</a>, <a href="5-lp.html#SP4_2_1_3">&#167;4.2.1.3</a>, <a href="5-lp.html#SP4_2_1_3_1">&#167;4.2.1.3.1</a>, <a href="5-lp.html#SP4_2_1_3_2_1">&#167;4.2.1.3.2.1</a>, <a href="5-lp.html#SP4_2_1_3_2_2">&#167;4.2.1.3.2.2</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP10">&#167;10</a>, <a href="7-cgl.html#SP14_5_1">&#167;14.5.1</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_1_1_1">&#167;1.1.1.1</a>, <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_5">&#167;1.2.5</a>, <a href="7-cgt.html#SP1_2_10_1_1_1">&#167;1.2.10.1.1.1</a><br/>Kind GPRs - <a href="7-kg.html#SP5_1_1_1">&#167;5.1.1.1</a><br/>Parse Name Properties - <a href="7-pnp.html#SP10_2">&#167;10.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::lab</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">L</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="2-emt.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresscurrent">ec</li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-ea.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>
</body>
</html>