mirror of
https://github.com/ganelson/inform.git
synced 2024-07-16 22:14:23 +03:00
793 lines
126 KiB
HTML
793 lines
126 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<html>
|
|
<head>
|
|
<title>Definitions Template</title>
|
|
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
<meta name="viewport" content="width=device-width initial-scale=1">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<meta http-equiv="Content-Language" content="en-gb">
|
|
|
|
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
<script>
|
|
MathJax = {
|
|
tex: {
|
|
inlineMath: '$', '$'], ['\\(', '\\)'
|
|
},
|
|
svg: {
|
|
fontCache: 'global'
|
|
}
|
|
};
|
|
</script>
|
|
<script type="text/javascript" id="MathJax-script" async
|
|
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js">
|
|
</script>
|
|
|
|
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
|
|
</head>
|
|
<body class="commentary-font">
|
|
<nav role="navigation">
|
|
<h1><a href="../index.html">
|
|
<img src="../docs-assets/Inform.png" height=72">
|
|
</a></h1>
|
|
<ul><li><a href="../compiler.html">compiler tools</a></li>
|
|
<li><a href="../other.html">other tools</a></li>
|
|
<li><a href="../extensions.html">extensions and kits</a></li>
|
|
<li><a href="../units.html">unit test tools</a></li>
|
|
</ul><h2>Extensions</h2><ul>
|
|
<li><a href="../basic_inform/index.html">basic_inform</a></li>
|
|
<li><a href="../standard_rules/index.html">standard_rules</a></li>
|
|
</ul><h2>Kits</h2><ul>
|
|
<li><a href="index.html"><span class="selectedlink">BasicInformKit</span></a></li>
|
|
<li><a href="../BasicInformExtrasKit/index.html">BasicInformExtrasKit</a></li>
|
|
<li><a href="../CommandParserKit/index.html">CommandParserKit</a></li>
|
|
<li><a href="../EnglishLanguageKit/index.html">EnglishLanguageKit</a></li>
|
|
<li><a href="../WorldModelKit/index.html">WorldModelKit</a></li>
|
|
|
|
</ul>
|
|
</nav>
|
|
<main role="main">
|
|
<!--Weave of 'Definitions Template' generated by Inweb-->
|
|
<div class="breadcrumbs">
|
|
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">BasicInformKit</a></li><li><b>Definitions Template</b></li></ul></div>
|
|
<p class="purpose">Miscellaneous constant definitions, usually providing symbolic names for otherwise inscrutable numbers, which are used throughout the template layer.</p>
|
|
|
|
<ul class="toc"><li><a href="S-dfn.html#SP1">§1. Z-Machine Definitions</a></li><li><a href="S-dfn.html#SP2">§2. Glulx Definitions</a></li><li><a href="S-dfn.html#SP3">§3. Powers of Two</a></li><li><a href="S-dfn.html#SP4">§4. Text Styles</a></li><li><a href="S-dfn.html#SP5">§5. Colour Numbers</a></li><li><a href="S-dfn.html#SP6">§6. Window Numbers</a></li><li><a href="S-dfn.html#SP7">§7. Paragraphing Flags</a></li><li><a href="S-dfn.html#SP8">§8. Descriptors in the Language of Play</a></li><li><a href="S-dfn.html#SP9">§9. Run-Time Problem Numbers</a></li><li><a href="S-dfn.html#SP10">§10. Template Activities</a></li><li><a href="S-dfn.html#SP11">§11. Template Rulebooks</a></li><li><a href="S-dfn.html#SP12">§12. Kind IDs</a></li><li><a href="S-dfn.html#SP13">§13. Parser Error Numbers</a></li><li><a href="S-dfn.html#SP14">§14. Scope Searching Reasons</a></li><li><a href="S-dfn.html#SP15">§15. Token Types</a></li><li><a href="S-dfn.html#SP16">§16. GPR Return Values</a></li><li><a href="S-dfn.html#SP17">§17. List Styles</a></li><li><a href="S-dfn.html#SP18">§18. Lengths Of Time</a></li><li><a href="S-dfn.html#SP19">§19. Empty Text</a></li><li><a href="S-dfn.html#SP20">§20. Empty Table</a></li><li><a href="S-dfn.html#SP21">§21. Empty Set</a></li><li><a href="S-dfn.html#SP22">§22. Template Attributes</a></li><li><a href="S-dfn.html#SP23">§23. Template Properties</a></li><li><a href="S-dfn.html#SP24">§24. Fake Actions</a></li><li><a href="S-dfn.html#SP25">§25. Formal Parameters</a></li><li><a href="S-dfn.html#SP26">§26. Template Configuration</a></li></ul><hr class="tocbar">
|
|
|
|
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Z-Machine Definitions. </b>The Z-machine contains certain special constants and variables at fixed
|
|
position in its "header"; the addresses of these are given below. See
|
|
{\it The Z-Machine Standards Document}, version 1.0, for details.
|
|
</p>
|
|
|
|
<p class="commentary"><span class="extract"><span class="extract-syntax">INDIV_PROP_START</span></span> is the lowest number of any "individual property",
|
|
an I6 internal quantity defined by the compiler when the target is Glulx
|
|
but not for Z.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="plain-syntax">#</span><span class="identifier-syntax">Ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">TARGET_ZCODE</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">INDIV_PROP_START</span><span class="plain-syntax"> </span><span class="constant-syntax">64</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="comment-syntax">Offsets into Z-machine header:</span>
|
|
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_ZCODEVERSION</span><span class="plain-syntax"> = </span><span class="constant-syntax">$00</span><span class="plain-syntax">; </span><span class="comment-syntax">byte</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_TERPFLAGS</span><span class="plain-syntax"> = </span><span class="constant-syntax">$01</span><span class="plain-syntax">; </span><span class="comment-syntax">byte</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_GAMERELEASE</span><span class="plain-syntax"> = </span><span class="constant-syntax">$02</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_HIGHMEMORY</span><span class="plain-syntax"> = </span><span class="constant-syntax">$04</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_INITIALPC</span><span class="plain-syntax"> = </span><span class="constant-syntax">$06</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_DICTIONARY</span><span class="plain-syntax"> = </span><span class="constant-syntax">$08</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_OBJECTS</span><span class="plain-syntax"> = </span><span class="constant-syntax">$0A</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_GLOBALS</span><span class="plain-syntax"> = </span><span class="constant-syntax">$0C</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_STATICMEMORY</span><span class="plain-syntax"> = </span><span class="constant-syntax">$0E</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_GAMEFLAGS</span><span class="plain-syntax"> = </span><span class="constant-syntax">$10</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_GAMESERIAL</span><span class="plain-syntax"> = </span><span class="constant-syntax">$12</span><span class="plain-syntax">; </span><span class="comment-syntax">six ASCII characters</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_ABBREVIATIONS</span><span class="plain-syntax"> = </span><span class="constant-syntax">$18</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_FILELENGTH</span><span class="plain-syntax"> = </span><span class="constant-syntax">$1A</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_CHECKSUM</span><span class="plain-syntax"> = </span><span class="constant-syntax">$1C</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_TERPNUMBER</span><span class="plain-syntax"> = </span><span class="constant-syntax">$1E</span><span class="plain-syntax">; </span><span class="comment-syntax">byte</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_TERPVERSION</span><span class="plain-syntax"> = </span><span class="constant-syntax">$1F</span><span class="plain-syntax">; </span><span class="comment-syntax">byte</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_SCREENHLINES</span><span class="plain-syntax"> = </span><span class="constant-syntax">$20</span><span class="plain-syntax">; </span><span class="comment-syntax">byte</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_SCREENWCHARS</span><span class="plain-syntax"> = </span><span class="constant-syntax">$21</span><span class="plain-syntax">; </span><span class="comment-syntax">byte</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_SCREENWUNITS</span><span class="plain-syntax"> = </span><span class="constant-syntax">$22</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_SCREENHUNITS</span><span class="plain-syntax"> = </span><span class="constant-syntax">$24</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_FONTWUNITS</span><span class="plain-syntax"> = </span><span class="constant-syntax">$26</span><span class="plain-syntax">; </span><span class="comment-syntax">byte</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_FONTHUNITS</span><span class="plain-syntax"> = </span><span class="constant-syntax">$27</span><span class="plain-syntax">; </span><span class="comment-syntax">byte</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_ROUTINEOFFSET</span><span class="plain-syntax"> = </span><span class="constant-syntax">$28</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_STRINGOFFSET</span><span class="plain-syntax"> = </span><span class="constant-syntax">$2A</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_BGCOLOUR</span><span class="plain-syntax"> = </span><span class="constant-syntax">$2C</span><span class="plain-syntax">; </span><span class="comment-syntax">byte</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_FGCOLOUR</span><span class="plain-syntax"> = </span><span class="constant-syntax">$2D</span><span class="plain-syntax">; </span><span class="comment-syntax">byte</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_TERMCHARS</span><span class="plain-syntax"> = </span><span class="constant-syntax">$2E</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_PIXELSTO3</span><span class="plain-syntax"> = </span><span class="constant-syntax">$30</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_TERPSTANDARD</span><span class="plain-syntax"> = </span><span class="constant-syntax">$32</span><span class="plain-syntax">; </span><span class="comment-syntax">two bytes</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_ALPHABET</span><span class="plain-syntax"> = </span><span class="constant-syntax">$34</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_EXTENSION</span><span class="plain-syntax"> = </span><span class="constant-syntax">$36</span><span class="plain-syntax">; </span><span class="comment-syntax">word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_UNUSED</span><span class="plain-syntax"> = </span><span class="constant-syntax">$38</span><span class="plain-syntax">; </span><span class="comment-syntax">two words</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_INFORMVERSION</span><span class="plain-syntax"> = </span><span class="constant-syntax">$3C</span><span class="plain-syntax">; </span><span class="comment-syntax">four ASCII characters</span>
|
|
|
|
<span class="plain-syntax">#</span><span class="identifier-syntax">Endif</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. Glulx Definitions. </b>We make similar header definitions for Glulx. Extensive further
|
|
definitions, of constants needed to handle the Glk I/O layer, can be found
|
|
in the "Infglk" section of "Glulx.i6t"; they are not used in the rest
|
|
of the template layer, and would only get in the way here.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="plain-syntax">#</span><span class="identifier-syntax">IFDEF</span><span class="plain-syntax"> </span><span class="identifier-syntax">TARGET_GLULX</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">unicode_gestalt_ok</span><span class="plain-syntax">; </span><span class="comment-syntax">Set if interpreter supports Unicode</span>
|
|
|
|
<span class="comment-syntax">Offsets into Glulx header and start of ROM:</span>
|
|
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_MAGICNUMBER</span><span class="plain-syntax"> = </span><span class="constant-syntax">$00</span><span class="plain-syntax">; </span><span class="comment-syntax">long word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_GLULXVERSION</span><span class="plain-syntax"> = </span><span class="constant-syntax">$04</span><span class="plain-syntax">; </span><span class="comment-syntax">long word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_RAMSTART</span><span class="plain-syntax"> = </span><span class="constant-syntax">$08</span><span class="plain-syntax">; </span><span class="comment-syntax">long word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_EXTSTART</span><span class="plain-syntax"> = </span><span class="constant-syntax">$0C</span><span class="plain-syntax">; </span><span class="comment-syntax">long word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_ENDMEM</span><span class="plain-syntax"> = </span><span class="constant-syntax">$10</span><span class="plain-syntax">; </span><span class="comment-syntax">long word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_STACKSIZE</span><span class="plain-syntax"> = </span><span class="constant-syntax">$14</span><span class="plain-syntax">; </span><span class="comment-syntax">long word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_STARTFUNC</span><span class="plain-syntax"> = </span><span class="constant-syntax">$18</span><span class="plain-syntax">; </span><span class="comment-syntax">long word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_DECODINGTBL</span><span class="plain-syntax"> = </span><span class="constant-syntax">$1C</span><span class="plain-syntax">; </span><span class="comment-syntax">long word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HDR_CHECKSUM</span><span class="plain-syntax"> = </span><span class="constant-syntax">$20</span><span class="plain-syntax">; </span><span class="comment-syntax">long word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ROM_INFO</span><span class="plain-syntax"> = </span><span class="constant-syntax">$24</span><span class="plain-syntax">; </span><span class="comment-syntax">four ASCII characters</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ROM_MEMORYLAYOUT</span><span class="plain-syntax"> = </span><span class="constant-syntax">$28</span><span class="plain-syntax">; </span><span class="comment-syntax">long word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ROM_INFORMVERSION</span><span class="plain-syntax"> = </span><span class="constant-syntax">$2C</span><span class="plain-syntax">; </span><span class="comment-syntax">four ASCII characters</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ROM_COMPVERSION</span><span class="plain-syntax"> = </span><span class="constant-syntax">$30</span><span class="plain-syntax">; </span><span class="comment-syntax">four ASCII characters</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ROM_GAMERELEASE</span><span class="plain-syntax"> = </span><span class="constant-syntax">$34</span><span class="plain-syntax">; </span><span class="comment-syntax">short word</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ROM_GAMESERIAL</span><span class="plain-syntax"> = </span><span class="constant-syntax">$36</span><span class="plain-syntax">; </span><span class="comment-syntax">six ASCII characters</span>
|
|
|
|
<span class="plain-syntax">#</span><span class="identifier-syntax">Endif</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. Powers of Two. </b>I6 lacks support for logical shifts, and the Z-machine opcodes which bear
|
|
on this are not always well supported, so the I6 library has traditionally
|
|
used a lookup table for the values of \(2^{15-n}\) where \(0\leq n \leq 11\).
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">PowersOfTwo_TB</span>
|
|
<span class="plain-syntax"> --> </span><span class="constant-syntax">$$100000000000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$010000000000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$001000000000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$000100000000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$000010000000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$000001000000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$000000100000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$000000010000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$000000001000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$000000000100</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$000000000010</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$000000000001</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">IncreasingPowersOfTwo_TB</span>
|
|
<span class="plain-syntax"> --> </span><span class="constant-syntax">$$0000000000000001</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$0000000000000010</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$0000000000000100</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$0000000000001000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$0000000000010000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$0000000000100000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$0000000001000000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$0000000010000000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$0000000100000000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$0000001000000000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$0000010000000000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$0000100000000000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$0001000000000000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$0010000000000000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$0100000000000000</span>
|
|
<span class="plain-syntax"> </span><span class="constant-syntax">$$1000000000000000</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. Text Styles. </b>These are the styles of text distinguished by the template layer, though
|
|
they are not required to look different from each other on any given VM.
|
|
The codes are independent of the VM targetted, though in fact they are
|
|
equal to Glulx style numbers as conventionally used. (The Z-machine renders
|
|
some as roman, some as bold, but for instance makes <span class="extract"><span class="extract-syntax">HEADER_VMSTY</span></span> and
|
|
<span class="extract"><span class="extract-syntax">SUBHEADER_VMSTY</span></span> indistinguishable to the eye.) Glulx's system of styles
|
|
is one of its weakest points from an IF author's perspective, since it is
|
|
all but impossible to achieve the text effects one might want — boldface,
|
|
for instance, or red text — and text rendering is almost the only area
|
|
in which it is clearly inferior to the Z-machine, which it was designed
|
|
to replace. Still, using these styles when we can will get the most out of
|
|
it, and for unornamental works Glulx is fine in practice.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NORMAL_VMSTY</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HEADER_VMSTY</span><span class="plain-syntax"> = </span><span class="constant-syntax">3</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">SUBHEADER_VMSTY</span><span class="plain-syntax"> = </span><span class="constant-syntax">4</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ALERT_VMSTY</span><span class="plain-syntax"> = </span><span class="constant-syntax">5</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NOTE_VMSTY</span><span class="plain-syntax"> = </span><span class="constant-syntax">6</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">BLOCKQUOTE_VMSTY</span><span class="plain-syntax"> = </span><span class="constant-syntax">7</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">INPUT_VMSTY</span><span class="plain-syntax"> = </span><span class="constant-syntax">8</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. Colour Numbers. </b>These are traditional colour names: quite who it was who thought that azure
|
|
was the same colour as cyan is now unclear. Colour is, again, not easy to
|
|
arrange on Glulx, but there is some workaround code.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CLR_DEFAULT</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CLR_BLACK</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CLR_RED</span><span class="plain-syntax"> = </span><span class="constant-syntax">3</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CLR_GREEN</span><span class="plain-syntax"> = </span><span class="constant-syntax">4</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CLR_YELLOW</span><span class="plain-syntax"> = </span><span class="constant-syntax">5</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CLR_BLUE</span><span class="plain-syntax"> = </span><span class="constant-syntax">6</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CLR_MAGENTA</span><span class="plain-syntax"> = </span><span class="constant-syntax">7</span><span class="plain-syntax">; </span><span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CLR_PURPLE</span><span class="plain-syntax"> = </span><span class="constant-syntax">7</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CLR_CYAN</span><span class="plain-syntax"> = </span><span class="constant-syntax">8</span><span class="plain-syntax">; </span><span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CLR_AZURE</span><span class="plain-syntax"> = </span><span class="constant-syntax">8</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CLR_WHITE</span><span class="plain-syntax"> = </span><span class="constant-syntax">9</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. Window Numbers. </b>Although Glulx can support elaborate tessalations of windows on screen (if
|
|
the complexity of handling this can be mastered), the Z-machine has much
|
|
more limited resources in general, so the template layer assumes a simple
|
|
screen model: there are just two screen areas, the scrolling main window
|
|
in which commands are typed and responses printed, and the fixed status
|
|
line bar at the top of the screen.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">WIN_ALL</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="comment-syntax">Both windows at once</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">WIN_STATUS</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">WIN_MAIN</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. Paragraphing Flags. </b>I am not sure many dictionaries would countenance "to paragraph" as a
|
|
verb, but never mind: the reference here is to the algorithm used to place
|
|
paragraph breaks within text, which uses bitmaps composed of the following.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PARA_COMPLETED</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PARA_PROMPTSKIP</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PARA_SUPPRESSPROMPTSKIP</span><span class="plain-syntax"> = </span><span class="constant-syntax">4</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PARA_NORULEBOOKBREAKS</span><span class="plain-syntax"> = </span><span class="constant-syntax">8</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PARA_CONTENTEXPECTED</span><span class="plain-syntax"> = </span><span class="constant-syntax">16</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. Descriptors in the Language of Play. </b>The following constants, which must be different in value from the number
|
|
of any I6 attribute, are used in the <span class="extract"><span class="extract-syntax">LanguageDescriptors</span></span> table found
|
|
in the definition of the language of play.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">POSSESS_PK</span><span class="plain-syntax"> = </span><span class="constant-syntax">$100</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">DEFART_PK</span><span class="plain-syntax"> = </span><span class="constant-syntax">$101</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">INDEFART_PK</span><span class="plain-syntax"> = </span><span class="constant-syntax">$102</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. Run-Time Problem Numbers. </b>The enumeration sequence here must correspond to that in the file of RTP
|
|
texts, which is used to generate the HTML pages displayed by the Inform
|
|
user interface when a run-time problem has occurred. (For instance, the
|
|
file of RTP texts includes the heading "P17 - Can't divide by zero",
|
|
equivalent to <span class="extract"><span class="extract-syntax">RTP_DIVZERO</span></span> being 17 below.) There is no significance to
|
|
the sequence, which is simply the historical order in which they were added
|
|
to I7.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_BACKDROP</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_EXITDOOR</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_NOEXIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">3</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_CANTCHANGE</span><span class="plain-syntax"> = </span><span class="constant-syntax">4</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_IMPREL</span><span class="plain-syntax"> = </span><span class="constant-syntax">5</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_RULESTACK</span><span class="plain-syntax"> = </span><span class="constant-syntax">6</span><span class="plain-syntax">; </span><span class="comment-syntax">Now out of use</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TOOMANYRULEBOOKS</span><span class="plain-syntax"> = </span><span class="constant-syntax">7</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TOOMANYEVENTS</span><span class="plain-syntax"> = </span><span class="constant-syntax">8</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_BADPROPERTY</span><span class="plain-syntax"> = </span><span class="constant-syntax">9</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_UNPROVIDED</span><span class="plain-syntax"> = </span><span class="constant-syntax">10</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_UNSET</span><span class="plain-syntax"> = </span><span class="constant-syntax">11</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TOOMANYACTS</span><span class="plain-syntax"> = </span><span class="constant-syntax">12</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_CANTABANDON</span><span class="plain-syntax"> = </span><span class="constant-syntax">13</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_CANTEND</span><span class="plain-syntax"> = </span><span class="constant-syntax">14</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_CANTMOVENOTHING</span><span class="plain-syntax"> = </span><span class="constant-syntax">15</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_CANTREMOVENOTHING</span><span class="plain-syntax"> = </span><span class="constant-syntax">16</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_DIVZERO</span><span class="plain-syntax"> = </span><span class="constant-syntax">17</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_BADVALUEPROPERTY</span><span class="plain-syntax"> = </span><span class="constant-syntax">18</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_NOTBACKDROP</span><span class="plain-syntax"> = </span><span class="constant-syntax">19</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOCOL</span><span class="plain-syntax"> = </span><span class="constant-syntax">20</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOCORR</span><span class="plain-syntax"> = </span><span class="constant-syntax">21</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOROW</span><span class="plain-syntax"> = </span><span class="constant-syntax">22</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOENTRY</span><span class="plain-syntax"> = </span><span class="constant-syntax">23</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOTABLE</span><span class="plain-syntax"> = </span><span class="constant-syntax">24</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOMOREBLANKS</span><span class="plain-syntax"> = </span><span class="constant-syntax">25</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOROWS</span><span class="plain-syntax"> = </span><span class="constant-syntax">26</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_CANTSORT</span><span class="plain-syntax"> = </span><span class="constant-syntax">27</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_NOTINAROOM</span><span class="plain-syntax"> = </span><span class="constant-syntax">28</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_BADTOPIC</span><span class="plain-syntax"> = </span><span class="constant-syntax">29</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_ROUTELESS</span><span class="plain-syntax"> = </span><span class="constant-syntax">30</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_PROPOFNOTHING</span><span class="plain-syntax"> = </span><span class="constant-syntax">31</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_DECIDEONWRONGKIND</span><span class="plain-syntax"> = </span><span class="constant-syntax">32</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_DECIDEONNOTHING</span><span class="plain-syntax"> = </span><span class="constant-syntax">33</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_CANTSAVE</span><span class="plain-syntax"> = </span><span class="constant-syntax">34</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_WONTFIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">35</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_BADFILE</span><span class="plain-syntax"> = </span><span class="constant-syntax">36</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_LOWLEVELERROR</span><span class="plain-syntax"> = </span><span class="constant-syntax">37</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_DONTIGNORETURNSEQUENCE</span><span class="plain-syntax"> = </span><span class="constant-syntax">38</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_SAYINVALIDSNIPPET</span><span class="plain-syntax"> = </span><span class="constant-syntax">39</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_SPLICEINVALIDSNIPPET</span><span class="plain-syntax"> = </span><span class="constant-syntax">40</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_INCLUDEINVALIDSNIPPET</span><span class="plain-syntax"> = </span><span class="constant-syntax">41</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_LISTWRITERMEMORY</span><span class="plain-syntax"> = </span><span class="constant-syntax">42</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_CANTREMOVEPLAYER</span><span class="plain-syntax"> = </span><span class="constant-syntax">43</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_CANTREMOVEDOORS</span><span class="plain-syntax"> = </span><span class="constant-syntax">44</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_CANTCHANGEOFFSTAGE</span><span class="plain-syntax"> = </span><span class="constant-syntax">45</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_MSTACKMEMORY</span><span class="plain-syntax"> = </span><span class="constant-syntax">46</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TYPECHECK</span><span class="plain-syntax"> = </span><span class="constant-syntax">47</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_FILEIOERROR</span><span class="plain-syntax"> = </span><span class="constant-syntax">48</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_HEAPERROR</span><span class="plain-syntax"> = </span><span class="constant-syntax">49</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_LISTRANGEERROR</span><span class="plain-syntax"> = </span><span class="constant-syntax">50</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_REGEXPSYNTAXERROR</span><span class="plain-syntax"> = </span><span class="constant-syntax">51</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_NOGLULXUNICODE</span><span class="plain-syntax"> = </span><span class="constant-syntax">52</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_BACKDROPONLY</span><span class="plain-syntax"> = </span><span class="constant-syntax">53</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_NOTTHING</span><span class="plain-syntax"> = </span><span class="constant-syntax">54</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_SCENEHASNTSTARTED</span><span class="plain-syntax"> = </span><span class="constant-syntax">55</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_SCENEHASNTENDED</span><span class="plain-syntax"> = </span><span class="constant-syntax">56</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_NEGATIVEROOT</span><span class="plain-syntax"> = </span><span class="constant-syntax">57</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_CANTRUNTHROUGH</span><span class="plain-syntax"> = </span><span class="constant-syntax">58</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_CANTITERATE</span><span class="plain-syntax"> = </span><span class="constant-syntax">59</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_WRONGASSIGNEDKIND</span><span class="plain-syntax"> = </span><span class="constant-syntax">60</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_CANTBEOFFSTAGE</span><span class="plain-syntax"> = </span><span class="constant-syntax">61</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_RELKINDVIOLATION</span><span class="plain-syntax"> = </span><span class="constant-syntax">62</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_CANTMAKEPART</span><span class="plain-syntax"> = </span><span class="constant-syntax">63</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TEXTTOKENTOOHARD</span><span class="plain-syntax"> = </span><span class="constant-syntax">64</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_TABLE_NOTABLE2</span><span class="plain-syntax"> = </span><span class="constant-syntax">65</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_RELATIONCHANGEIMPOSSIBLE</span><span class="plain-syntax"> = </span><span class="constant-syntax">66</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_RELMINIMAL</span><span class="plain-syntax"> = </span><span class="constant-syntax">67</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_LISTSIZENEGATIVE</span><span class="plain-syntax"> = </span><span class="constant-syntax">68</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RTP_REGIONSNOTADJACENT</span><span class="plain-syntax"> = </span><span class="constant-syntax">69</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. Template Activities. </b>These are the activities defined in the Standard Rules. Most, though not
|
|
all, are carried out by explicit function calls in the template layer,
|
|
which is why we need their ID numbers: note that Inform assigns each activity a
|
|
unique ID number on creation, counting upwards from 0, and that it
|
|
processes the Standard Rules before any other source text. (These numbers
|
|
must correspond {\it both} to those in the source of Inform, {\it and} to the
|
|
creation sequence in the Standard Rules.)
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">STARTING_VIRTUAL_MACHINE_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRINTING_THE_NAME_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRINTING_THE_PLURAL_NAME_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRINTING_RESPONSE_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">3</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRINTING_A_NUMBER_OF_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">4</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRINTING_ROOM_DESC_DETAILS_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">5</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRINTING_INVENTORY_DETAILS_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">6</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">LISTING_CONTENTS_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">7</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">GROUPING_TOGETHER_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">8</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITING_A_PARAGRAPH_ABOUT_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">9</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">LISTING_NONDESCRIPT_ITEMS_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">10</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRINTING_NAME_OF_DARK_ROOM_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">11</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRINTING_DESC_OF_DARK_ROOM_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">12</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRINTING_NEWS_OF_DARKNESS_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">13</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRINTING_NEWS_OF_LIGHT_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">14</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">REFUSAL_TO_ACT_IN_DARK_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">15</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CONSTRUCTING_STATUS_LINE_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">16</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRINTING_BANNER_TEXT_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">17</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">READING_A_COMMAND_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">18</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">DECIDING_SCOPE_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">19</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">DECIDING_CONCEALED_POSSESS_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">20</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">DECIDING_WHETHER_ALL_INC_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">21</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CLARIFYING_PARSERS_CHOICE_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">22</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ASKING_WHICH_DO_YOU_MEAN_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">23</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRINTING_A_PARSER_ERROR_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">24</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">SUPPLYING_A_MISSING_NOUN_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">25</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">SUPPLYING_A_MISSING_SECOND_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">26</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">IMPLICITLY_TAKING_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">27</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">AMUSING_A_VICTORIOUS_PLAYER_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">28</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRINTING_PLAYERS_OBITUARY_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">29</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">DEALING_WITH_FINAL_QUESTION_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">30</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRINTING_LOCALE_DESCRIPTION_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">31</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CHOOSING_NOTABLE_LOCALE_OBJ_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">32</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PRINTING_LOCALE_PARAGRAPH_ACT</span><span class="plain-syntax"> = </span><span class="constant-syntax">33</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. Template Rulebooks. </b>Rulebooks are created in a similar way, and again are numbered upwards from
|
|
0 in order of creation. These are the ones used in the template layer.
|
|
(These numbers must correspond {\it both} to those in the source of Inform,
|
|
{\it and} to the creation sequence in the Standard Rules.)
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">STARTUP_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">SHUTDOWN_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="comment-syntax">2, 3, 4 are used by the "Printing the name of something" activity</span>
|
|
<span class="comment-syntax">5, 6, 7 are used by the "Printing the plural name of something" activity</span>
|
|
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TURN_SEQUENCE_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">11</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="comment-syntax">9 is the Scene changing rules</span>
|
|
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">WHEN_PLAY_BEGINS_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">13</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">WHEN_PLAY_ENDS_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">14</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">WHEN_SCENE_BEGINS_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">15</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">WHEN_SCENE_ENDS_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">16</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="comment-syntax">14 is Every turn</span>
|
|
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ACTION_PROCESSING_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">18</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">SETTING_ACTION_VARIABLES_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">19</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">SPECIFIC_ACTION_PROCESSING_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">20</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="comment-syntax">18 is player's action awareness rules</span>
|
|
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ACCESSIBILITY_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">22</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">REACHING_INSIDE_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">23</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">REACHING_OUTSIDE_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">24</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">VISIBLE_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">25</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PERSUADE_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">26</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">UNSUCCESSFUL_ATTEMPT_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">27</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="comment-syntax">25 is before, 26 is instead, 27 is check, 28 is carry out</span>
|
|
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">AFTER_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">32</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">REPORT_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">33</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">DOES_THE_PLAYER_MEAN_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">34</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">MULTIPLE_ACTION_PROCESSING_RB</span><span class="plain-syntax"> = </span><span class="constant-syntax">35</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. Kind IDs. </b>These are filled in automatically by Inform, and have the same names as are used
|
|
in the Inform source (and in the Load-.i6t sections): for instance <span class="extract"><span class="extract-syntax">NUMBER_TY</span></span>.
|
|
</p>
|
|
|
|
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>§13. Parser Error Numbers. </b>The traditional ways in which the I6 library's parser, which we adopt here
|
|
more or less intact, can give up on a player's command. See the {\it Inform
|
|
Designer's Manual}, 4th edition, for details.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">STUCK_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">UPTO_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NUMBER_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">3</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ANIMA_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">4</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CANTSEE_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">5</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TOOLIT_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">6</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NOTHELD_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">7</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">MULTI_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">8</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">MMULTI_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">9</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">VAGUE_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">10</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">EXCEPT_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">11</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">VERB_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">12</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">SCENERY_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">13</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ITGONE_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">14</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">JUNKAFTER_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">15</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TOOFEW_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">16</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NOTHING_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">17</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ASKSCOPE_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">18</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NOTINCONTEXT_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">19</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">BLANKLINE_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">20</span><span class="plain-syntax">; </span><span class="comment-syntax">Not formally a parser error, but used by I7 as if</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ANIMAAGAIN_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">21</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">COMMABEGIN_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">22</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">MISSINGPERSON_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">23</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ANIMALISTEN_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">24</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TOTALK_PE</span><span class="plain-syntax"> = </span><span class="constant-syntax">25</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>§14. Scope Searching Reasons. </b>The parser makes use of a mechanism for searching through the objects currently
|
|
"in scope", which basically means visible to the actor who would perform the
|
|
action envisaged by the command being parsed. It is sometimes useful to
|
|
behave differently depending on why this scope searching is being done, so
|
|
the following constants enumerate the possibilities.
|
|
</p>
|
|
|
|
<p class="commentary">I6's <span class="extract"><span class="extract-syntax">EACH_TURN_REASON</span></span>, <span class="extract"><span class="extract-syntax">REACT_BEFORE_REASON</span></span> and <span class="extract"><span class="extract-syntax">REACT_AFTER_REASON</span></span>
|
|
have been removed from this list as no longer meaningful; hence the lacuna
|
|
in numbering.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PARSING_REASON</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TALKING_REASON</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">EACH_TURN_REASON</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">LOOPOVERSCOPE_REASON</span><span class="plain-syntax"> = </span><span class="constant-syntax">5</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TESTSCOPE_REASON</span><span class="plain-syntax"> = </span><span class="constant-syntax">6</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>§15. Token Types. </b>Tokens are the indecomposable pieces of a grammar line making up a possible
|
|
reading of a command; some are literal words, others stand for "any named
|
|
object in scope", and so on. The following codes identify the possibilities.
|
|
The <span class="extract"><span class="extract-syntax">*_TOKEN</span></span> constants must not be altered without modifying the I6 compiler
|
|
to match (so, basically, they must not be altered at all).
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ILLEGAL_TT</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="comment-syntax">Types of grammar token: illegal</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ELEMENTARY_TT</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">; </span><span class="comment-syntax"> (one of those below)</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PREPOSITION_TT</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">; </span><span class="comment-syntax"> e.g. 'into'</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ROUTINE_FILTER_TT</span><span class="plain-syntax"> = </span><span class="constant-syntax">3</span><span class="plain-syntax">; </span><span class="comment-syntax"> e.g. noun=CagedCreature</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ATTR_FILTER_TT</span><span class="plain-syntax"> = </span><span class="constant-syntax">4</span><span class="plain-syntax">; </span><span class="comment-syntax"> e.g. edible</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">SCOPE_TT</span><span class="plain-syntax"> = </span><span class="constant-syntax">5</span><span class="plain-syntax">; </span><span class="comment-syntax"> e.g. scope=Spells</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">GPR_TT</span><span class="plain-syntax"> = </span><span class="constant-syntax">6</span><span class="plain-syntax">; </span><span class="comment-syntax"> a general parsing routine</span>
|
|
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NOUN_TOKEN</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="comment-syntax">The elementary grammar tokens, and</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HELD_TOKEN</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">; </span><span class="comment-syntax">the numbers compiled by I6 to</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">MULTI_TOKEN</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">; </span><span class="comment-syntax">encode them</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">MULTIHELD_TOKEN</span><span class="plain-syntax"> = </span><span class="constant-syntax">3</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">MULTIEXCEPT_TOKEN</span><span class="plain-syntax"> = </span><span class="constant-syntax">4</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">MULTIINSIDE_TOKEN</span><span class="plain-syntax"> = </span><span class="constant-syntax">5</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CREATURE_TOKEN</span><span class="plain-syntax"> = </span><span class="constant-syntax">6</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">SPECIAL_TOKEN</span><span class="plain-syntax"> = </span><span class="constant-syntax">7</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NUMBER_TOKEN</span><span class="plain-syntax"> = </span><span class="constant-syntax">8</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TOPIC_TOKEN</span><span class="plain-syntax"> = </span><span class="constant-syntax">9</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ENDIT_TOKEN</span><span class="plain-syntax"> = </span><span class="constant-syntax">15</span><span class="plain-syntax">; </span><span class="comment-syntax">Value used to mean "end of grammar line"</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. GPR Return Values. </b>GRP stands for "General Parsing Routine", an I6 routine which acts as a
|
|
grammar token: again, see the {\it Inform Designer's Manual}, 4th edition,
|
|
for details.
|
|
</p>
|
|
|
|
<p class="commentary">In Library 6/11, <span class="extract"><span class="extract-syntax">GPR_NOUN</span></span> is defined as <span class="extract"><span class="extract-syntax">$ff00</span></span>, but this would fail on
|
|
Glulx: it needs to be <span class="extract"><span class="extract-syntax">$ffffff00</span></span> on 32-bit virtual machines. It appears that
|
|
<span class="extract"><span class="extract-syntax">GPR_NOUN</span></span> to <span class="extract"><span class="extract-syntax">GPR_CREATURE</span></span>, though documented in the old {\it Inform
|
|
Translator's Manual}, were omitted when this was consolidated into the DM4,
|
|
so that they effectively disappeared from view. But they might still be
|
|
useful for implementing inflected forms of nouns, so we have retained them
|
|
here regardless.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">GPR_FAIL</span><span class="plain-syntax"> = -1; </span><span class="comment-syntax">Return values from General Parsing</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">GPR_PREPOSITION</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="comment-syntax">Routines</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">GPR_NUMBER</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">GPR_MULTIPLE</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">GPR_REPARSE</span><span class="plain-syntax"> = </span><span class="identifier-syntax">REPARSE_CODE</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">GPR_NOUN</span><span class="plain-syntax"> = -256; </span><span class="comment-syntax">Reparse, but as </span><span class="extract"><span class="extract-syntax">NOUN_TOKEN</span></span><span class="comment-syntax"> this time</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">GPR_HELD</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GPR_NOUN</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">; </span><span class="comment-syntax">And so on</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">GPR_MULTI</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GPR_NOUN</span><span class="plain-syntax"> + </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">GPR_MULTIHELD</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GPR_NOUN</span><span class="plain-syntax"> + </span><span class="constant-syntax">3</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">GPR_MULTIEXCEPT</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GPR_NOUN</span><span class="plain-syntax"> + </span><span class="constant-syntax">4</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">GPR_MULTIINSIDE</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GPR_NOUN</span><span class="plain-syntax"> + </span><span class="constant-syntax">5</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">GPR_CREATURE</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GPR_NOUN</span><span class="plain-syntax"> + </span><span class="constant-syntax">6</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>§17. List Styles. </b>These constants make up bitmaps of the options in use when listing objects.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NEWLINE_BIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">$$0000000000000001</span><span class="plain-syntax">; </span><span class="comment-syntax">New-line after each entry</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">INDENT_BIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">$$0000000000000010</span><span class="plain-syntax">; </span><span class="comment-syntax">Indent each entry by depth</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">FULLINV_BIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">$$0000000000000100</span><span class="plain-syntax">; </span><span class="comment-syntax">Full inventory information after entry</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ENGLISH_BIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">$$0000000000001000</span><span class="plain-syntax">; </span><span class="comment-syntax">English sentence style, with commas and and</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RECURSE_BIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">$$0000000000010000</span><span class="plain-syntax">; </span><span class="comment-syntax">Recurse downwards with usual rules</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ALWAYS_BIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">$$0000000000100000</span><span class="plain-syntax">; </span><span class="comment-syntax">Always recurse downwards</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TERSE_BIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">$$0000000001000000</span><span class="plain-syntax">; </span><span class="comment-syntax">More terse English style</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PARTINV_BIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">$$0000000010000000</span><span class="plain-syntax">; </span><span class="comment-syntax">Only brief inventory information after entry</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">DEFART_BIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">$$0000000100000000</span><span class="plain-syntax">; </span><span class="comment-syntax">Use the definite article in list</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">WORKFLAG_BIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">$$0000001000000000</span><span class="plain-syntax">; </span><span class="comment-syntax">At top level (only), only list objects</span>
|
|
<span class="plain-syntax"> </span><span class="comment-syntax">which have the "workflag" attribute</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ISARE_BIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">$$0000010000000000</span><span class="plain-syntax">; </span><span class="comment-syntax">Print " is" or " are" before list</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CONCEAL_BIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">$$0000100000000000</span><span class="plain-syntax">; </span><span class="comment-syntax">Omit objects with "concealed" or "scenery":</span>
|
|
<span class="plain-syntax"> </span><span class="comment-syntax">if WORKFLAG_BIT also set, then does not</span>
|
|
<span class="plain-syntax"> </span><span class="comment-syntax">apply at top level, but does lower down</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NOARTICLE_BIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">$$0001000000000000</span><span class="plain-syntax">; </span><span class="comment-syntax">Print no articles, definite or not</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">EXTRAINDENT_BIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">$$0010000000000000</span><span class="plain-syntax">; </span><span class="comment-syntax">New in I7: extra indentation of 1 level</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">CFIRSTART_BIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">$$0100000000000000</span><span class="plain-syntax">; </span><span class="comment-syntax">Capitalise first article in list</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>§18. Lengths Of Time. </b>Inform measures time in minutes.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">QUARTER_HOUR</span><span class="plain-syntax"> = </span><span class="constant-syntax">15</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">HALF_HOUR</span><span class="plain-syntax"> = </span><span class="constant-syntax">30</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ONE_HOUR</span><span class="plain-syntax"> = </span><span class="constant-syntax">60</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TWELVE_HOURS</span><span class="plain-syntax"> = </span><span class="constant-syntax">720</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">TWENTY_FOUR_HOURS</span><span class="plain-syntax"> = </span><span class="constant-syntax">1440</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>§19. Empty Text. </b>The I6 compiler does not optimise string compilation: if it needs to compile
|
|
the (packed, read-only) string <span class="extract"><span class="extract-syntax">"exemplum"</span></span> twice, it will compile two copies.
|
|
This is slightly wasteful on memory, though in practice the loss is not
|
|
enough for us to care. But we do want to avoid this in I7 because, to make
|
|
string-sorting algorithms more efficient, we want direct numerical comparison
|
|
of packed addresses to be equivalent to string comparison: and that means
|
|
the text "exemplum" has to be compiled once and once only. There's a
|
|
general mechanism for this in Inform, but the single case most often needed
|
|
is the empty text, since this is the default value for text variables
|
|
and properties: we give it a name as follows.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">EMPTY_TEXT_PACKED</span><span class="plain-syntax"> </span><span class="string-syntax">""</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">EMPTY_TEXT_VALUE</span><span class="plain-syntax"> --> </span><span class="identifier-syntax">CONSTANT_PACKED_TEXT_STORAGE</span><span class="plain-syntax"> </span><span class="identifier-syntax">EMPTY_TEXT_PACKED</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>§20. Empty Table. </b>Similarly: the default value for the "table" kind of value, a Table
|
|
containing no rows and no columns.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">TheEmptyTable</span><span class="plain-syntax"> --> </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>§21. Empty Set. </b>The falsity proposition describes the empty set of objects, and is the
|
|
zero value for the "description" kind of value.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="plain-syntax">[ </span><span class="identifier-syntax">Prop_Falsity</span><span class="plain-syntax"> </span><span class="identifier-syntax">reason</span><span class="plain-syntax"> </span><span class="identifier-syntax">obj</span><span class="plain-syntax">; </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">; ];</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>§22. Template Attributes. </b>An I6 attribute is equivalent to an I7 "either/or property", though the
|
|
latter are not always translated into I6 attributes because the Z-machine
|
|
has only a limited number of attributes to use. Here, we define attributes
|
|
used by the template.
|
|
</p>
|
|
|
|
<p class="commentary">Many concepts in I6 correspond directly to their successors in I7, even if
|
|
details may vary. (Value properties are a case in point.) Attributes are
|
|
the opposite of this: indeed, no I6 concept is more fragmented in its I7
|
|
equivalents. All but one of the old I6 library attributes are still used
|
|
(the <span class="extract"><span class="extract-syntax">general</span></span> attribute, for miscellaneous use, has been removed: it more
|
|
often invited abuse than use); and a few new attributes have been added.
|
|
But they are used for a variety of purposes. Some do correspond exactly to
|
|
either/or properties in I7, but others are a sort of signature for I7
|
|
kinds. (So that for I7 use they are read-only.) Others still are used by
|
|
the template layer as part of the implementation of services for I7, but
|
|
are not visible to I7 source text as storage.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">absent</span><span class="plain-syntax">; </span><span class="comment-syntax">Used to mark objects removed from play</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">animate</span><span class="plain-syntax">; </span><span class="comment-syntax">I6-level marker for I7 kind "person"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">clothing</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "wearable"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">concealed</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "undescribed"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">container</span><span class="plain-syntax">; </span><span class="comment-syntax">I6-level marker for I7 kind "container"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">door</span><span class="plain-syntax">; </span><span class="comment-syntax">I6-level marker for I7 kind "door"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">edible</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "edible" vs "inedible"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">enterable</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "enterable"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">light</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "lighted" vs "dark"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">lockable</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "lockable"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">locked</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "locked"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">moved</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "handled"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">on</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "switched on" vs "switched off"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">open</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "open" vs "closed"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">openable</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "openable"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">scenery</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "scenery"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">static</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "fixed in place" vs "portable"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">supporter</span><span class="plain-syntax">; </span><span class="comment-syntax">I6-level marker for I7 kind "supporter"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">switchable</span><span class="plain-syntax">; </span><span class="comment-syntax">I6-level marker for I7 kind "device"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">talkable</span><span class="plain-syntax">; </span><span class="comment-syntax">Not currently used by I7, but retained for possible future use</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">transparent</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "transparent" vs "opaque"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">visited</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "visited"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">worn</span><span class="plain-syntax">; </span><span class="comment-syntax">marks that an object tree edge represents wearing</span>
|
|
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">male</span><span class="plain-syntax">; </span><span class="comment-syntax">not directly used by I7, but available for languages with genders</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">female</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "female" vs "male"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">neuter</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "neuter"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">pluralname</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "plural-named"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">ambigpluralname</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "ambiguously plural"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">proper</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "proper-named"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">remove_proper</span><span class="plain-syntax">; </span><span class="comment-syntax">remember to remove proper again when using ChangePlayer next</span>
|
|
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">privately_named</span><span class="plain-syntax">; </span><span class="comment-syntax">New in I7</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">mentioned</span><span class="plain-syntax">; </span><span class="comment-syntax">New in I7</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">pushable</span><span class="plain-syntax">; </span><span class="comment-syntax">New in I7</span>
|
|
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">mark_as_room</span><span class="plain-syntax">; </span><span class="comment-syntax">Used in I7 to speed up testing "ofclass K1_room"</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">mark_as_thing</span><span class="plain-syntax">; </span><span class="comment-syntax">Used in I7 to speed up testing "ofclass K2_thing"</span>
|
|
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">workflag</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "marked for listing", but basically temporary workspace</span>
|
|
<span class="identifier-syntax">Attribute</span><span class="plain-syntax"> </span><span class="identifier-syntax">workflag2</span><span class="plain-syntax">; </span><span class="comment-syntax">new in I7 and also temporary workspace</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">list_filter_permits</span><span class="plain-syntax"> = </span><span class="identifier-syntax">privately_named</span><span class="plain-syntax">; </span><span class="comment-syntax">another I7 listwriter convenience</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>§23. Template Properties. </b>As remarked above, these more often correspond to value properties in I7.
|
|
To an experienced I6 user, though, the death toll of abolished I6
|
|
properties in I7 is breathtaking: in alphabetical order, <span class="extract"><span class="extract-syntax">after</span></span>,
|
|
<span class="extract"><span class="extract-syntax">cant_go</span></span>, <span class="extract"><span class="extract-syntax">daemon</span></span>, <span class="extract"><span class="extract-syntax">each_turn</span></span>, <span class="extract"><span class="extract-syntax">invent</span></span>, <span class="extract"><span class="extract-syntax">life</span></span>, <span class="extract"><span class="extract-syntax">number</span></span>, <span class="extract"><span class="extract-syntax">orders</span></span>,
|
|
<span class="extract"><span class="extract-syntax">react_after</span></span>, <span class="extract"><span class="extract-syntax">react_before</span></span>, <span class="extract"><span class="extract-syntax">time_left</span></span>, <span class="extract"><span class="extract-syntax">time_out</span></span>, <span class="extract"><span class="extract-syntax">when_closed</span></span>,
|
|
<span class="extract"><span class="extract-syntax">when_off</span></span>, <span class="extract"><span class="extract-syntax">when_on</span></span>, <span class="extract"><span class="extract-syntax">when_open</span></span>. In May 2008, the direction properties
|
|
<span class="extract"><span class="extract-syntax">n_to</span></span>, <span class="extract"><span class="extract-syntax">s_to</span></span>, <span class="extract"><span class="extract-syntax">e_to</span></span>, ..., <span class="extract"><span class="extract-syntax">out_to</span></span> joined the list of the missing.
|
|
</p>
|
|
|
|
<p class="commentary">The losses are numerous because of the shift from I6's object orientation
|
|
to I7's rule orientation: information about the behaviour of objects is no
|
|
longer thought of as data attached to them. At that, it could have been
|
|
worse: a few unused I6 library properties have been retained for possible
|
|
future use.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">add_to_scope</span><span class="plain-syntax">; </span><span class="comment-syntax">used as in I6 to place component parts in scope</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">article</span><span class="plain-syntax"> </span><span class="string-syntax">"a"</span><span class="plain-syntax">; </span><span class="comment-syntax">used as in I6 to implement articles</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">capacity</span><span class="plain-syntax"> </span><span class="constant-syntax">100</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "carrying capacity"</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">component_child</span><span class="plain-syntax">; </span><span class="comment-syntax">new in I7: forest structure holding "part of" relation</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">component_parent</span><span class="plain-syntax">; </span><span class="comment-syntax">new in I7</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">component_sibling</span><span class="plain-syntax">; </span><span class="comment-syntax">new in I7</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">description</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "description"</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">door_dir</span><span class="plain-syntax">; </span><span class="comment-syntax">used to implement two-sided doors, but holds direction object, not a property</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">door_to</span><span class="plain-syntax">; </span><span class="comment-syntax">used as in I6 to implement two-sided doors</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">found_in</span><span class="plain-syntax">; </span><span class="comment-syntax">used as in I6 to implement two-sided doors and backdrops</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">initial</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "initial description"</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">list_together</span><span class="plain-syntax">; </span><span class="comment-syntax">used as in I6 to implement "grouping together" activity</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">map_region</span><span class="plain-syntax">; </span><span class="comment-syntax">new in I7</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_name</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="comment-syntax">used as in I6 to implement "Understand... as..." grammars</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">plural</span><span class="plain-syntax">; </span><span class="comment-syntax">used as in I6 to implement plural names for duplicate objects</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">regional_found_in</span><span class="plain-syntax">; </span><span class="comment-syntax">new in I7</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">room_index</span><span class="plain-syntax">; </span><span class="comment-syntax">new in I7: storage for route-finding</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">short_name</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "printed name"</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">vector</span><span class="plain-syntax">; </span><span class="comment-syntax">new in I7: storage for route-finding</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">with_key</span><span class="plain-syntax">; </span><span class="comment-syntax">= I7 "matching key"</span>
|
|
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">KD_Count</span><span class="plain-syntax">; </span><span class="comment-syntax">Instance count of the kind of the current object</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">IK1_Count</span><span class="plain-syntax">; </span><span class="comment-syntax">These are instance counts within kinds K1, K2, ...</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">IK2_Count</span><span class="plain-syntax">; </span><span class="comment-syntax">and it is efficient to declare the common ones with Property</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">IK4_Count</span><span class="plain-syntax">; </span><span class="comment-syntax">since this results in a slightly smaller story file</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">IK5_Count</span><span class="plain-syntax">;</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">IK6_Count</span><span class="plain-syntax">;</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">IK8_Count</span><span class="plain-syntax">;</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">IK3_Count</span><span class="plain-syntax">;</span>
|
|
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">IK1_link</span><span class="plain-syntax">; </span><span class="comment-syntax">These are for linked lists used to make searches faster</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">IK2_link</span><span class="plain-syntax">; </span><span class="comment-syntax">and again it's memory-efficient to declare the common ones</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">IK5_link</span><span class="plain-syntax">; </span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">IK6_link</span><span class="plain-syntax">; </span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">IK8_link</span><span class="plain-syntax">; </span>
|
|
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">articles</span><span class="plain-syntax">; </span><span class="comment-syntax">not used by I7, but an interesting hook in the parser</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">grammar</span><span class="plain-syntax">; </span><span class="comment-syntax">not used by I7, but an interesting hook in the parser</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">inside_description</span><span class="plain-syntax">; </span><span class="comment-syntax">not used by I7, but an interesting hook in the locale code</span>
|
|
<span class="identifier-syntax">Property</span><span class="plain-syntax"> </span><span class="identifier-syntax">short_name_indef</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="comment-syntax">not used by I7, but an interesting hook in the listmaker</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP24" class="paragraph-anchor"></a><b>§24. Fake Actions. </b>Though sometimes useful for I6 coding tricks, fake actions — action numbers
|
|
not corresponding to any action, but different from those of valid actions,
|
|
and useable with a number of action syntaxes — are not conceptually present
|
|
in I7 source text. They can only really exist at the I6 level because I6 is
|
|
typeless; in I7 terms, there is no convenient kind of value which could
|
|
represent both actions and fake actions while protecting each from confusion
|
|
with the other.
|
|
</p>
|
|
|
|
<p class="commentary">See the {\it Inform Designer's Manual}, 4th edition, for what these are
|
|
used for.
|
|
</p>
|
|
|
|
<p class="commentary">The following fake actions from the I6 library have been dropped here:
|
|
<span class="extract"><span class="extract-syntax">##LetGo</span></span>, <span class="extract"><span class="extract-syntax">##Receive</span></span>, <span class="extract"><span class="extract-syntax">##ThrownAt</span></span>, <span class="extract"><span class="extract-syntax">##Prompt</span></span>, <span class="extract"><span class="extract-syntax">##Places</span></span>, <span class="extract"><span class="extract-syntax">##Objects</span></span>,
|
|
<span class="extract"><span class="extract-syntax">##Order</span></span>, <span class="extract"><span class="extract-syntax">##NotUnderstood</span></span>.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="identifier-syntax">Fake_Action</span><span class="plain-syntax"> </span><span class="identifier-syntax">ListMiscellany</span><span class="plain-syntax">;</span>
|
|
<span class="identifier-syntax">Fake_Action</span><span class="plain-syntax"> </span><span class="identifier-syntax">Miscellany</span><span class="plain-syntax">;</span>
|
|
<span class="identifier-syntax">Fake_Action</span><span class="plain-syntax"> </span><span class="identifier-syntax">PluralFound</span><span class="plain-syntax">;</span>
|
|
<span class="identifier-syntax">Fake_Action</span><span class="plain-syntax"> </span><span class="identifier-syntax">TheSame</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP25" class="paragraph-anchor"></a><b>§25. Formal Parameters. </b>These are needed for efficient run-time ambiguity resolution.
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">formal_rv</span><span class="plain-syntax">;</span>
|
|
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">formal_par0</span><span class="plain-syntax">;</span>
|
|
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">formal_par1</span><span class="plain-syntax">;</span>
|
|
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">formal_par2</span><span class="plain-syntax">;</span>
|
|
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">formal_par3</span><span class="plain-syntax">;</span>
|
|
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">formal_par4</span><span class="plain-syntax">;</span>
|
|
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">formal_par5</span><span class="plain-syntax">;</span>
|
|
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">formal_par6</span><span class="plain-syntax">;</span>
|
|
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">formal_par7</span><span class="plain-syntax">;</span>
|
|
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">unicode_temp</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<p class="commentary firstcommentary"><a id="SP26" class="paragraph-anchor"></a><b>§26. Template Configuration. </b>To minimise the need for conditional compilation in the template, the
|
|
constant <span class="extract"><span class="extract-syntax">KIT_CONFIGURATION_BITMAP</span></span> must be generated by the user
|
|
(i.e., by I7). It's made up of these bits:
|
|
</p>
|
|
|
|
<pre class="displayed-code all-displayed-code code-font">
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">USE_SCORING_TCBIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PREVENT_UNDO_TCBIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">SERIAL_COMMA_TCBIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">4</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">PROGRAMMING_EXPONENTS_TCBIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">8</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">FIX_RNG_TCBIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">16</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">ECHO_COMMANDS_TCBIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">32</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">NO_VERB_VERB_DEFINED_TCBIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">64</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">DIALECT_US_TCBIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">128</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">STORY_AUTHOR_TCBIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">256</span><span class="plain-syntax">;</span>
|
|
<span class="reserved-syntax">Constant</span><span class="plain-syntax"> </span><span class="identifier-syntax">RANKING_TABLE_TCBIT</span><span class="plain-syntax"> = </span><span class="constant-syntax">512</span><span class="plain-syntax">;</span>
|
|
</pre>
|
|
<nav role="progress"><div class="progresscontainer">
|
|
<ul class="progressbar"><li class="progressprevoff">❮</li><li class="progresscurrent">dfn</li><li class="progresssection"><a href="S-utl.html">utl</a></li><li class="progresssection"><a href="S-gll.html">gll</a></li><li class="progresssection"><a href="S-zmc.html">zmc</a></li><li class="progresssection"><a href="S-prg.html">prg</a></li><li class="progresssection"><a href="S-mth.html">mth</a></li><li class="progresssection"><a href="S-fl.html">fl</a></li><li class="progresssection"><a href="S-srt.html">srt</a></li><li class="progresssection"><a href="S-tbl.html">tbl</a></li><li class="progresssection"><a href="S-mst.html">mst</a></li><li class="progresssection"><a href="S-rlb.html">rlb</a></li><li class="progresssection"><a href="S-flx.html">flx</a></li><li class="progresssection"><a href="S-blc.html">blc</a></li><li class="progresssection"><a href="S-txt.html">txt</a></li><li class="progresssection"><a href="S-unc.html">unc</a></li><li class="progresssection"><a href="S-chr.html">chr</a></li><li class="progresssection"><a href="S-rgx.html">rgx</a></li><li class="progresssection"><a href="S-lst.html">lst</a></li><li class="progresssection"><a href="S-cmb.html">cmb</a></li><li class="progresssection"><a href="S-rlt.html">rlt</a></li><li class="progresssection"><a href="S-rlt2.html">rlt2</a></li><li class="progresssection"><a href="S-rtp.html">rtp</a></li><li class="progressnext"><a href="S-utl.html">❯</a></li></ul></div>
|
|
</nav><!--End of weave-->
|
|
|
|
</main>
|
|
</body>
|
|
</html>
|
|
|