1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-08 10:04:21 +03:00
inform7/docs/runtime-module/index.html
2021-04-11 21:41:26 +01:00

446 lines
20 KiB
HTML

<html>
<head>
<title>runtime</title>
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
<meta name="viewport" content="width=device-width initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-gb">
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../compiler.html">compiler tools</a></li>
<li><a href="../other.html">other tools</a></li>
<li><a href="../extensions.html">extensions and kits</a></li>
<li><a href="../units.html">unit test tools</a></li>
</ul><h2>Compiler Webs</h2><ul>
<li><a href="../inbuild/index.html">inbuild</a></li>
<li><a href="../inform7/index.html">inform7</a></li>
<li><a href="../inter/index.html">inter</a></li>
</ul><h2>Inbuild Modules</h2><ul>
<li><a href="../supervisor-module/index.html">supervisor</a></li>
</ul><h2>Inform7 Modules</h2><ul>
<li><a href="../core-module/index.html">core</a></li>
<li><a href="../assertions-module/index.html">assertions</a></li>
<li><a href="../values-module/index.html">values</a></li>
<li><a href="../knowledge-module/index.html">knowledge</a></li>
<li><a href="../imperative-module/index.html">imperative</a></li>
<li><span class="unlink">runtime</span></li>
<li><a href="../if-module/index.html">if</a></li>
<li><a href="../multimedia-module/index.html">multimedia</a></li>
<li><a href="../index-module/index.html">index</a></li>
</ul><h2>Inter Modules</h2><ul>
<li><a href="../bytecode-module/index.html">bytecode</a></li>
<li><a href="../building-module/index.html">building</a></li>
<li><a href="../codegen-module/index.html">codegen</a></li>
</ul><h2>Services</h2><ul>
<li><a href="../arch-module/index.html">arch</a></li>
<li><a href="../calculus-module/index.html">calculus</a></li>
<li><a href="../html-module/index.html">html</a></li>
<li><a href="../inflections-module/index.html">inflections</a></li>
<li><a href="../kinds-module/index.html">kinds</a></li>
<li><a href="../linguistics-module/index.html">linguistics</a></li>
<li><a href="../problems-module/index.html">problems</a></li>
<li><a href="../syntax-module/index.html">syntax</a></li>
<li><a href="../words-module/index.html">words</a></li>
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
</ul>
</nav>
<main role="main">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><b>runtime</b></li></ul>
<p class="purpose">Generating runtime support code for resources needed in Inform texts. This is version 1.</p>
<hr>
<div class="contentspage">
<ul class="chapterlist">
<li>
<p class="chapterentry"><a name="P"></a>
<span class="chaptertitle">Preliminaries</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="P-wtmd.html">
<spon class="sectiontitle">What This Module Does</span></a> -
<span class="sectionpurpose">An overview of the runtime module's role and abilities.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="1"></a>
<span class="chaptertitle">Chapter 1: Configuration and Control</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="1-rm.html">
<spon class="sectiontitle">Runtime Module</span></a> -
<span class="sectionpurpose">Setting up the use of this module.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="2"></a>
<span class="chaptertitle">Chapter 2: Emission</span></p>
<p class="chapterpurpose">Emitting Inter code ready for the code-generator.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="2-hrr.html">
<spon class="sectiontitle">Hierarchy</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="2-cu.html">
<spon class="sectiontitle">Compilation Units</span></a> -
<span class="sectionpurpose">To identify which parts of the source text come from which source (the main source text, the Standard Rules, or another extension).</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-emt.html">
<spon class="sectiontitle">Emitting Inter</span></a> -
<span class="sectionpurpose"></span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="3"></a>
<span class="chaptertitle">Chapter 3: Basics</span></p>
<p class="chapterpurpose">Mainly low-level utilities for compiling code.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="3-fc.html">
<spon class="sectiontitle">Fundamental Constants</span></a> -
<span class="sectionpurpose">Inter constants for, say, extremal number values, which depend on the target we are compiling to, and are generally low-level in nature.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-uoart.html">
<spon class="sectiontitle">Use Options at Run Time</span></a> -
<span class="sectionpurpose">To give certain use options a presence at run-time.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-efart.html">
<spon class="sectiontitle">Extension Files at Run Time</span></a> -
<span class="sectionpurpose">To provide the credits routines.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-i6i.html">
<spon class="sectiontitle">Inform 6 Inclusions</span></a> -
<span class="sectionpurpose">To include Inform 6 code almost verbatim in the output, as instructed by low-level Inform 7 sentences.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-iti.html">
<spon class="sectiontitle">I6 Template Interpreter</span></a> -
<span class="sectionpurpose">Inform 6 template language, or I6T for short, is a notation for expressing low-level code in Inter.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="4"></a>
<span class="chaptertitle">Chapter 4: Literals</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="4-lpart.html">
<spon class="sectiontitle">Literal Patterns at Run Time</span></a> -
<span class="sectionpurpose">Compiled code to print and parse values expressed as literals.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-tl.html">
<spon class="sectiontitle">Text Literals</span></a> -
<span class="sectionpurpose">In this section we compile text constants.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-ts.html">
<spon class="sectiontitle">Text Substitutions</span></a> -
<span class="sectionpurpose">In this section we compile text with substitutions.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-rsp.html">
<spon class="sectiontitle">Responses</span></a> -
<span class="sectionpurpose">In this section we keep track of response texts.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-ct.html">
<spon class="sectiontitle">Compiled Text</span></a> -
<span class="sectionpurpose">To compile string constants and comments.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-cl.html">
<spon class="sectiontitle">Constant Lists</span></a> -
<span class="sectionpurpose">In this section we compile I6 arrays for constant lists arising from braced literals.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="5"></a>
<span class="chaptertitle">Chapter 5: Miscellany</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="5-rsfk.html">
<spon class="sectiontitle">Runtime Support for Kinds</span></a> -
<span class="sectionpurpose">To compile I6 material needed at runtime to enable kinds to function as they should.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-lt.html">
<spon class="sectiontitle">List Together</span></a> -
<span class="sectionpurpose">To write support code for the Standard Library's "group together" phrases.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-rls.html">
<spon class="sectiontitle">Rules</span></a> -
<span class="sectionpurpose">To compile run-time support for rules.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-act.html">
<spon class="sectiontitle">Activities</span></a> -
<span class="sectionpurpose">To write support code for activities.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-es.html">
<spon class="sectiontitle">Equations Support</span></a> -
<span class="sectionpurpose">To compile unique identifiers for equations.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-tv.html">
<spon class="sectiontitle">Temporary Variables</span></a> -
<span class="sectionpurpose">When the run-time code needs to borrow a global variable for a while.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-vrb.html">
<spon class="sectiontitle">Variables</span></a> -
<span class="sectionpurpose">To compile run-time support for nonlocal variables.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-prp.html">
<spon class="sectiontitle">Properties</span></a> -
<span class="sectionpurpose">To compile run-time support for properties.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-msr.html">
<spon class="sectiontitle">Measurements</span></a> -
<span class="sectionpurpose">To compile run-time support for measurement adjectives.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-epv.html">
<spon class="sectiontitle">Emit Property Values</span></a> -
<span class="sectionpurpose">To feed the hierarchy of instances and their property values into Inter.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-ins.html">
<spon class="sectiontitle">Instances</span></a> -
<span class="sectionpurpose">To compile run-time support for instances.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-ic.html">
<spon class="sectiontitle">Instance Counting</span></a> -
<span class="sectionpurpose">A plugin which maintains run-time-accessible linked lists of instances of kinds, in order to speed up loops; and instance counts within kinds, in order to speed up relation storage; and the object-kind hierarchy, in order to speed up run-time checking of the type safety of property usage.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-adj.html">
<spon class="sectiontitle">Adjectives</span></a> -
<span class="sectionpurpose">To compile run-time support for adjective definitions.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-ni.html">
<spon class="sectiontitle">Noun Identifiers</span></a> -
<span class="sectionpurpose">Nametags provide for a more contextual parsing of nouns, allowing them to be given in an inexact verbal form.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-vart.html">
<spon class="sectiontitle">Verbs at Run Time</span></a> -
<span class="sectionpurpose">To provide run-time access to verbs and their conjugations.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-rart.html">
<spon class="sectiontitle">Relations at Run Time</span></a> -
<span class="sectionpurpose">Relations need both storage and support code at runtime.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-rsft.html">
<spon class="sectiontitle">Runtime Support for Tables</span></a> -
<span class="sectionpurpose">To compile run-time data structures holding tables.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-chr.html">
<spon class="sectiontitle">Chronology</span></a> -
<span class="sectionpurpose">To keep track of the state of things so that it will be possible in future to ask questions concerning the past.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="6"></a>
<span class="chaptertitle">Chapter 6: World Model</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="6-nmn.html">
<spon class="sectiontitle">Naming</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="6-bd.html">
<spon class="sectiontitle">Bibliographic Data</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="6-spt.html">
<spon class="sectiontitle">Spatial</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="6-tp.html">
<spon class="sectiontitle">The Player</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="6-bck.html">
<spon class="sectiontitle">Backdrops</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="6-rgn.html">
<spon class="sectiontitle">Regions</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="6-tm.html">
<spon class="sectiontitle">The Map</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="6-ts.html">
<spon class="sectiontitle">The Score</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="6-tr.html">
<spon class="sectiontitle">Timed Rules</span></a> -
<span class="sectionpurpose">Code to support rules like "At 12:03AM: ...".</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-scn.html">
<spon class="sectiontitle">Scenes</span></a> -
<span class="sectionpurpose">Compiling code to manage scene changes at run-time.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="7"></a>
<span class="chaptertitle">Chapter 7: Actions</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="7-act.html">
<spon class="sectiontitle">Actions</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="7-nap.html">
<spon class="sectiontitle">Named Action Patterns</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="7-ap.html">
<spon class="sectiontitle">Action Patterns</span></a> -
<span class="sectionpurpose">Compiling APs.</span></p>
</li>
<li>
<p class="sectionentry"><a href="7-gng.html">
<spon class="sectiontitle">Going</span></a> -
<span class="sectionpurpose">Tweaks to compiling APs for the going action.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="8"></a>
<span class="chaptertitle">Chapter 8: Command Parser</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="8-prs.html">
<spon class="sectiontitle">Parsing</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="8-cg.html">
<spon class="sectiontitle">Command Grammars</span></a> -
<span class="sectionpurpose">Runtime support for CGs.</span></p>
</li>
<li>
<p class="sectionentry"><a href="8-cgl.html">
<spon class="sectiontitle">Command Grammar Lines</span></a> -
<span class="sectionpurpose">Runtime support for CGLs.</span></p>
</li>
<li>
<p class="sectionentry"><a href="8-nft.html">
<spon class="sectiontitle">Noun Filter Tokens</span></a> -
<span class="sectionpurpose">Filters are used to require nouns to have specific kinds or attributes, or to have specific scoping rules: they correspond to Inform 6's |noun=Routine| and |scope=Routine| tokens. Though these are quite different concepts in I6, their common handling seems natural in I7.</span></p>
</li>
<li>
<p class="sectionentry"><a href="8-tpv.html">
<spon class="sectiontitle">Tokens Parsing Values</span></a> -
<span class="sectionpurpose">In the argot of Inform 6, GPR stands for General Parsing Routine, and I7 makes heavy use of GPR tokens to achieve its ends. This section is where the necessary I6 routines are compiled.</span></p>
</li>
<li>
<p class="sectionentry"><a href="8-gpr.html">
<spon class="sectiontitle">General Parsing Routines</span></a> -
<span class="sectionpurpose">To compile I6 general parsing routines (GPRs) and/or |parse_name| properties as required by the I7 grammar.</span></p>
</li>
<li>
<p class="sectionentry"><a href="8-los.html">
<spon class="sectiontitle">Looping Over Scope</span></a> -
<span class="sectionpurpose">To compile routines capable of being passed as arguments to the I6 library routine for looping over parser scope at run-time, and so to provide an implementation for conditions such as "in the presence of Mrs Dalloway".</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="9"></a>
<span class="chaptertitle">Chapter 9: Multimedia</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="9-fgr.html">
<spon class="sectiontitle">Figures</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="9-se.html">
<spon class="sectiontitle">Sound Effects</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="9-ef.html">
<spon class="sectiontitle">External Files</span></a> -
<span class="sectionpurpose"></span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="10"></a>
<span class="chaptertitle">Chapter 10: Testing</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="10-sc.html">
<spon class="sectiontitle">Showme Command</span></a> -
<span class="sectionpurpose">A plugin to provide some support for the SHOWME testing command.</span></p>
</li>
<li>
<p class="sectionentry"><a href="10-ts.html">
<spon class="sectiontitle">Test Scripts</span></a> -
<span class="sectionpurpose">A rudimentary but useful testing system built in to IF produced by Inform, allowing short sequences of commands to be concisely noted in the source text and tried out in the Inform application using the TEST command.</span></p>
</li>
<li>
<p class="sectionentry"><a href="10-itc.html">
<spon class="sectiontitle">Internal Test Cases</span></a> -
<span class="sectionpurpose">Handling requests to compile internal tests.</span></p>
</li>
</ul>
</li>
</ul>
</div>
<hr>
<p class="purpose">Powered by <a href="https://github.com/ganelson/inweb">Inweb</a>.</p>
</main>
</body>
</html>