1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-08 10:04:21 +03:00
inform7/docs/core-module/index.html
2020-08-25 21:47:14 +01:00

1053 lines
57 KiB
HTML

<html>
<head>
<title>core</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><span class="unlink">core</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 Modules</a></li><li><b>core</b></li></ul>
<p class="purpose">The core of the Inform compiler, as a module. 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 core 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>
<p class="chapterpurpose">Managing the production line for the compilation process.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="1-cm.html">
<spon class="sectiontitle">Core Module</span></a> -
<span class="sectionpurpose">Setting up the use of this module.</span></p>
</li>
<li>
<p class="sectionentry"><a href="1-wtc.html">
<spon class="sectiontitle">What To Compile</span></a> -
<span class="sectionpurpose">To receive an instruction to compile something from Inbuild, and then to sort out the many locations then used in the host filing system.</span></p>
</li>
<li>
<p class="sectionentry"><a href="1-htc.html">
<spon class="sectiontitle">How To Compile</span></a> -
<span class="sectionpurpose">The long production line on which products of Inform are built, one step at a time.</span></p>
</li>
<li>
<p class="sectionentry"><a href="1-cp.html">
<spon class="sectiontitle">Core Preform</span></a> -
<span class="sectionpurpose">To load, optimise and throw problem messages related to Preform syntax.</span></p>
</li>
<li>
<p class="sectionentry"><a href="1-pp.html">
<spon class="sectiontitle">Progress Percentages</span></a> -
<span class="sectionpurpose">This tiny section, the Lichtenstein of Inform, prints percentage of completion estimates so that the host application can intercept them and update its graphical progress bar.</span></p>
</li>
<li>
<p class="sectionentry"><a href="1-cs.html">
<spon class="sectiontitle">Compilation Settings</span></a> -
<span class="sectionpurpose">Settings affecting the compilation of the current project.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="2"></a>
<span class="chaptertitle">Chapter 2: Problem Messages</span></p>
<p class="chapterpurpose">The issuing of Problem messages.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="2-up.html">
<spon class="sectiontitle">Using Problems</span></a> -
<span class="sectionpurpose">Interface to the Problems module.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-sq.html">
<spon class="sectiontitle">Supplementary Quotes</span></a> -
<span class="sectionpurpose">More things to quote in problem messages.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-si.html">
<spon class="sectiontitle">Supplementary Issues</span></a> -
<span class="sectionpurpose">Some supplementary general sorts of problem message.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-pwst.html">
<spon class="sectiontitle">Problems With Source Text</span></a> -
<span class="sectionpurpose">Errors with the source text, either lexical issues or major syntactic ones, are found when Inbuild reads the text in: what this section does is to collect and issue those errors as tidy Inform problem messages.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="3"></a>
<span class="chaptertitle">Chapter 3: Top-Level Declarations</span></p>
<p class="chapterpurpose">Passing three times through top-level declarations and assertion sentences.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="3-bv.html">
<spon class="sectiontitle">Booting Verbs</span></a> -
<span class="sectionpurpose">In Inform even verbs are created with natural language sentences, but this process has to start somewhere.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-ptmn.html">
<spon class="sectiontitle">Passes through Major Nodes</span></a> -
<span class="sectionpurpose">To manage the overall process of traversing the parse tree for top-level declarations and assertion sentences.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-ar.html">
<spon class="sectiontitle">Anaphoric References</span></a> -
<span class="sectionpurpose">To keep track of the current object and subject of discussion.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-cs.html">
<spon class="sectiontitle">Classifying Sentences</span></a> -
<span class="sectionpurpose">To work out the verbs used and to diagram sentences in the source.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="4"></a>
<span class="chaptertitle">Chapter 4: Requests</span></p>
<p class="chapterpurpose">Sentences, often imperative, which have special meanings.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="4-dlr.html">
<spon class="sectiontitle">Debugging Log Requests</span></a> -
<span class="sectionpurpose">Special sentences for changing what goes into the debugging log.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-pr.html">
<spon class="sectiontitle">Pluralisation Requests</span></a> -
<span class="sectionpurpose">Special sentences for setting exotic plural forms of nouns.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-tr.html">
<spon class="sectiontitle">Translation Requests</span></a> -
<span class="sectionpurpose">Three unrelated senses of "X translates into Y as Z" sentences.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-nuor.html">
<spon class="sectiontitle">New Use Option Requests</span></a> -
<span class="sectionpurpose">Special sentences for creating new use options.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-uor.html">
<spon class="sectiontitle">Use Options</span></a> -
<span class="sectionpurpose">Special sentences for setting compilation options.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-tr2.html">
<spon class="sectiontitle">Test Requests</span></a> -
<span class="sectionpurpose">Special sentences for requesting unit tests or providing test scripts.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-dbtr.html">
<spon class="sectiontitle">Define by Table Requests</span></a> -
<span class="sectionpurpose">Special sentences declaring that tables amount to massed groups of assertions.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-rpr.html">
<spon class="sectiontitle">Rule Placement Requests</span></a> -
<span class="sectionpurpose">Special sentences for listing named rules in particular rulebooks.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-nar.html">
<spon class="sectiontitle">New Activity Requests</span></a> -
<span class="sectionpurpose">Special sentences creating new activities.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-nlpr.html">
<spon class="sectiontitle">New Literal Pattern Requests</span></a> -
<span class="sectionpurpose">Special sentences creating new notations for literal values.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-nrr.html">
<spon class="sectiontitle">New Relation Requests</span></a> -
<span class="sectionpurpose">Special sentences for creating new relations.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-npr.html">
<spon class="sectiontitle">New Property Requests</span></a> -
<span class="sectionpurpose">Special sentences creating new either/or properties.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-nvr.html">
<spon class="sectiontitle">New Verb Requests</span></a> -
<span class="sectionpurpose">Special sentences for creating new verbs.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-nar2.html">
<spon class="sectiontitle">New Adjective Requests</span></a> -
<span class="sectionpurpose">Special sentences for creating new adjectives.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="5"></a>
<span class="chaptertitle">Chapter 5: Assertions</span></p>
<p class="chapterpurpose">Turning regular assertion sentences into propositions about the model world.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="5-rpt.html">
<spon class="sectiontitle">Refine Parse Tree</span></a> -
<span class="sectionpurpose">To determine which subjects are referred to by noun phrases such as "the table" or "a paper cup" found in assertion sentences.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-tc.html">
<spon class="sectiontitle">The Creator</span></a> -
<span class="sectionpurpose">This is where all objects, kinds of object, named values, kinds of value and global variables are made.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-ass.html">
<spon class="sectiontitle">Assertions</span></a> -
<span class="sectionpurpose">To infer facts about the model world, or take other action, based on sentences asserted as being true in the source text.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-npa.html">
<spon class="sectiontitle">New Property Assertions</span></a> -
<span class="sectionpurpose">When regular assertion sentences create properties.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-pk.html">
<spon class="sectiontitle">Property Knowledge</span></a> -
<span class="sectionpurpose">This section draws inferences from assertions which seem to be about the properties of things, independent of their location.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-rk.html">
<spon class="sectiontitle">Relation Knowledge</span></a> -
<span class="sectionpurpose">This section draws inferences about the relationships between objects or values.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-ass2.html">
<spon class="sectiontitle">Assemblies</span></a> -
<span class="sectionpurpose">To build the complex multi-object assemblies which result from allowing the source text to say things like "in every room is a vehicle".</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-imp.html">
<spon class="sectiontitle">Implications</span></a> -
<span class="sectionpurpose">To keep track of a dangerous form of super-assertion called an implication, which is allowed to generalise about properties.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-tc2.html">
<spon class="sectiontitle">Tree Conversions</span></a> -
<span class="sectionpurpose">The second of the three sources of propositions to conjure with: those which arise from subtrees constructed by the A-parser.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="6"></a>
<span class="chaptertitle">Chapter 6: Nouns</span></p>
<p class="chapterpurpose">Nouns, mainly proper, and notations for constant values such as 10:03 AM, six, 34 kg, and so on.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="6-lp.html">
<spon class="sectiontitle">Literal Patterns</span></a> -
<span class="sectionpurpose">To manage the possible notations with which literal values can be written.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-tod.html">
<spon class="sectiontitle">Times of Day</span></a> -
<span class="sectionpurpose">To make a built-in kind of value for times of day, such as "11:22 AM".</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-uem.html">
<spon class="sectiontitle">Using Excerpt Meanings</span></a> -
<span class="sectionpurpose">To register and deregister meanings for excerpts of text as nouns, adjectives, imperative phrases and other usages.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-ul.html">
<spon class="sectiontitle">Unicode Literals</span></a> -
<span class="sectionpurpose">To manage the names assigned to Unicode character values.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-un.html">
<spon class="sectiontitle">Using Nametags</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="6-ins.html">
<spon class="sectiontitle">Instances</span></a> -
<span class="sectionpurpose">To manage constant values of enumerated kinds, including kinds of object.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-nv.html">
<spon class="sectiontitle">Nonlocal Variables</span></a> -
<span class="sectionpurpose">To manage variables whose scope is wider than the current rule.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-ipw.html">
<spon class="sectiontitle">Index Physical World</span></a> -
<span class="sectionpurpose">This section masterminds the creation of the World and Kinds index pages, though it delegates much of the work elsewhere. Though it does belong to core Inform, these indexes will look pretty sparse if the spatial Plugins aren't plugged in.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="7"></a>
<span class="chaptertitle">Chapter 7: Verbs</span></p>
<p class="chapterpurpose">Verbs which establish relationships between nouns, and which give meaning to binary predicates.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="7-am.html">
<spon class="sectiontitle">Adjective Meanings</span></a> -
<span class="sectionpurpose">One individual meaning which an adjective can have.</span></p>
</li>
<li>
<p class="sectionentry"><a href="7-rlt.html">
<spon class="sectiontitle">Relations</span></a> -
<span class="sectionpurpose">What Inform internally calls "binary predicates", the user calls "relations". In this section, we parse definitions of new relations and create the resulting |binary_predicate| objects.</span></p>
</li>
<li>
<p class="sectionentry"><a href="7-er.html">
<spon class="sectiontitle">Explicit Relations</span></a> -
<span class="sectionpurpose">To draw inferences from the relations created explicitly by the source text.</span></p>
</li>
<li>
<p class="sectionentry"><a href="7-tur.html">
<spon class="sectiontitle">The Universal Relation</span></a> -
<span class="sectionpurpose">To define the universal relation, which can apply and therefore subsumes all other relations.</span></p>
</li>
<li>
<p class="sectionentry"><a href="7-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="7-ch.html">
<spon class="sectiontitle">Calculus Handling</span></a> -
<span class="sectionpurpose"></span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="8"></a>
<span class="chaptertitle">Chapter 8: Sentences</span></p>
<p class="chapterpurpose">In which the stream of words is broken up into sentences and built into a parse tree, recording primary verbs, noun phrases and some sub-clauses; and in which these sentences are collected under a hierarchy of headings, with material intended only for certain target virtual machines included or excluded as need be.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="8-ptu.html">
<spon class="sectiontitle">Parse Tree Usage</span></a> -
<span class="sectionpurpose">Shims for the parse tree.</span></p>
</li>
<li>
<p class="sectionentry"><a href="8-hdn.html">
<spon class="sectiontitle">Headings</span></a> -
<span class="sectionpurpose">To keep track of the hierarchy of headings and subheadings found in the source text.</span></p>
</li>
<li>
<p class="sectionentry"><a href="8-rs.html">
<spon class="sectiontitle">Rule Subtrees</span></a> -
<span class="sectionpurpose">To tidy up |INVOCATION_LIST_NT| nodes into a list of children under the relevant |RULE_NT| node, and so turn each rule definition into a single subtree.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="9"></a>
<span class="chaptertitle">Chapter 9: Extensions</span></p>
<p class="chapterpurpose">Extensions of more sentences must be Included as requested; because of which, we also handle extension installation, uninstallation and documentation here.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="9-ef.html">
<spon class="sectiontitle">Extension Files</span></a> -
<span class="sectionpurpose">To keep details of the extensions currently loaded, their authors, titles, versions and rubrics, and to index and credit them suitably.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="10"></a>
<span class="chaptertitle">Chapter 10: The S-Parser</span></p>
<p class="chapterpurpose">In which the S-parser is put to work: excerpts of several words at a time are assigned meanings, and compound statements formed of these are parsed, producing lists of possible interpretations.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="10-its.html">
<spon class="sectiontitle">Introduction to Semantics</span></a> -
<span class="sectionpurpose">A general introduction to the S-parser and the data structures it makes use of.</span></p>
</li>
<li>
<p class="sectionentry"><a href="10-aots.html">
<spon class="sectiontitle">Architecture of the S-Parser</span></a> -
<span class="sectionpurpose">Top-level structure of the S-parser, which turns text into S-nodes.</span></p>
</li>
<li>
<p class="sectionentry"><a href="10-pl.html">
<spon class="sectiontitle">Parse Literals</span></a> -
<span class="sectionpurpose">To decide if an excerpt of text is a value referred to notationally rather than by name.</span></p>
</li>
<li>
<p class="sectionentry"><a href="10-cad.html">
<spon class="sectiontitle">Constants and Descriptions</span></a> -
<span class="sectionpurpose">To parse noun phrases in constant contexts, which specify values either explicitly or by describing them more or less vaguely.</span></p>
</li>
<li>
<p class="sectionentry"><a href="10-teav.html">
<spon class="sectiontitle">Type Expressions and Values</span></a> -
<span class="sectionpurpose">To parse two forms of noun: a noun phrase in a sentence, and a description of what text can be written in a given situation.</span></p>
</li>
<li>
<p class="sectionentry"><a href="10-varc.html">
<spon class="sectiontitle">Verbal and Relative Clauses</span></a> -
<span class="sectionpurpose">To break down an excerpt into NP and VP-like clauses, perhaps with a primary verb (to make a sentence), perhaps only a relative clause (to make a more complex NP).</span></p>
</li>
<li>
<p class="sectionentry"><a href="10-cap.html">
<spon class="sectiontitle">Conditions and Phrases</span></a> -
<span class="sectionpurpose">To parse the text of To... phrases, say phrases and conditions.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="11"></a>
<span class="chaptertitle">Chapter 11: Predicate Calculus</span></p>
<p class="chapterpurpose">In which the meaning of an S-parsed sentence is converted to a statement in predicate calculus, so that verbs and prepositions become relations, while determiners express quantifiers; this produces a mathematical proposition which can be simplified according to logical rules which change its form but not its meaning.</p>
<ul class="sectionlist">
</ul>
</li>
<li>
<p class="chapterentry"><a name="12"></a>
<span class="chaptertitle">Chapter 12: Use of Propositions</span></p>
<p class="chapterpurpose">This is where the propositions generated by the A-parser and the S-parser are at last acted upon, either immediately (generating inferences) or at run-time (by causing code to be compiled which will some day test or assert the truth of the proposition).</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="12-terr.html">
<spon class="sectiontitle">The Equality Relation Revisited</span></a> -
<span class="sectionpurpose">To define how equality behaves in the Inform language.</span></p>
</li>
<li>
<p class="sectionentry"><a href="12-qr.html">
<spon class="sectiontitle">Quasinumeric Relations</span></a> -
<span class="sectionpurpose">To define the binary predicates corresponding to numerical comparisons.</span></p>
</li>
<li>
<p class="sectionentry"><a href="12-ap.html">
<spon class="sectiontitle">Assert Propositions</span></a> -
<span class="sectionpurpose">To declare that a given proposition is a true statement about the state of the world when play begins.</span></p>
</li>
<li>
<p class="sectionentry"><a href="12-ca.html">
<spon class="sectiontitle">Compile Atoms</span></a> -
<span class="sectionpurpose">In this section, given an atom of a proposition we compile I6 code as required for any of three possible outcomes: (i) to test whether it is true, (ii) to make it henceforth true, or (iii) to make it henceforth false.</span></p>
</li>
<li>
<p class="sectionentry"><a href="12-dtd.html">
<spon class="sectiontitle">Deciding to Defer</span></a> -
<span class="sectionpurpose">To decide whether a proposition can be compiled immediately, in the body of the current routine, or whether it must be deferred to a routine of its own, which is called from the current routine.</span></p>
</li>
<li>
<p class="sectionentry"><a href="12-cad.html">
<spon class="sectiontitle">Cinders and Deferrals</span></a> -
<span class="sectionpurpose">To compile terms, having carefully preserved any constants which might have been lost in the process of deferring a proposition (such tricky constants being called "cinders").</span></p>
</li>
<li>
<p class="sectionentry"><a href="12-cdp.html">
<spon class="sectiontitle">Compile Deferred Propositions</span></a> -
<span class="sectionpurpose">To compile the I6 routines needed to perform the tests or tasks deferred as being too difficult in their original contexts.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="13"></a>
<span class="chaptertitle">Chapter 13: Bridge to Kinds Module</span></p>
<p class="chapterpurpose">In which values are categorised by their natures, and these in turn occupy a hierarchy.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="13-kak.html">
<spon class="sectiontitle">Knowledge about Kinds</span></a> -
<span class="sectionpurpose">How kinds can be inference subjects.</span></p>
</li>
<li>
<p class="sectionentry"><a href="13-ca.html">
<spon class="sectiontitle">Compile Arithmetic</span></a> -
<span class="sectionpurpose">To compile code performing an arithmetic operation.</span></p>
</li>
<li>
<p class="sectionentry"><a href="13-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="13-ki.html">
<spon class="sectiontitle">Kinds Index</span></a> -
<span class="sectionpurpose">To produce most of the Kinds page in the Index for a project: the chart at the top, and the detailed entries below.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="14"></a>
<span class="chaptertitle">Chapter 14: Specifications</span></p>
<p class="chapterpurpose">In which the meanings of excerpts are systematically catalogued according to what they specify; a categorisation much broader than working out kinds of value, since it applies to a much broader range of excerpts than values.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="14-sp.html">
<spon class="sectiontitle">Specifications</span></a> -
<span class="sectionpurpose">To create, manage and compare specifications.</span></p>
</li>
<li>
<p class="sectionentry"><a href="14-rv.html">
<spon class="sectiontitle">RValues</span></a> -
<span class="sectionpurpose">Utility functions for specifications representing rvalues.</span></p>
</li>
<li>
<p class="sectionentry"><a href="14-lv.html">
<spon class="sectiontitle">Lvalues</span></a> -
<span class="sectionpurpose">Utility functions for specifications representing lvalues, that is, storage locations for values at run-time.</span></p>
</li>
<li>
<p class="sectionentry"><a href="14-cn.html">
<spon class="sectiontitle">Conditions</span></a> -
<span class="sectionpurpose">Utility functions for condition nodes.</span></p>
</li>
<li>
<p class="sectionentry"><a href="14-ds.html">
<spon class="sectiontitle">Descriptions</span></a> -
<span class="sectionpurpose">Description nodes represent text such as "even numbers", which can either define a set of values or a predicate on them.</span></p>
</li>
<li>
<p class="sectionentry"><a href="14-cfs.html">
<spon class="sectiontitle">Compiling from Specifications</span></a> -
<span class="sectionpurpose">To compile specifications into Inform 6 values, conditions or void expressions.</span></p>
</li>
<li>
<p class="sectionentry"><a href="14-ds2.html">
<spon class="sectiontitle">Dash</span></a> -
<span class="sectionpurpose">Dash is the part of Inform most nearly like a typechecker in a conventional compiler.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="15"></a>
<span class="chaptertitle">Chapter 15: Properties</span></p>
<p class="chapterpurpose">Properties are named values attached to elements of the world model; not only objects, but also other enumerated constant values, and so on.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="15-pr.html">
<spon class="sectiontitle">Properties</span></a> -
<span class="sectionpurpose">Elements of the model world, such as objects, have properties associated with them. Here we look after the identities of these different properties.</span></p>
</li>
<li>
<p class="sectionentry"><a href="15-ep.html">
<spon class="sectiontitle">Either-Or Properties</span></a> -
<span class="sectionpurpose">Properties which can either be present or not, but have no value attached.</span></p>
</li>
<li>
<p class="sectionentry"><a href="15-vp.html">
<spon class="sectiontitle">Valued Properties</span></a> -
<span class="sectionpurpose">Properties which consist of an attached value, always having a given kind.</span></p>
</li>
<li>
<p class="sectionentry"><a href="15-ps.html">
<spon class="sectiontitle">Property Sentences</span></a> -
<span class="sectionpurpose">To examine assertion sentences for property creation.</span></p>
</li>
<li>
<p class="sectionentry"><a href="15-cp.html">
<spon class="sectiontitle">Condition Properties</span></a> -
<span class="sectionpurpose">Properties which hold one of an enumerated set of named states of something.</span></p>
</li>
<li>
<p class="sectionentry"><a href="15-ia.html">
<spon class="sectiontitle">Indefinite Appearance</span></a> -
<span class="sectionpurpose">To look after the indefinite appearance pseudo-property, used when the source text comments on something with a sentence consisting only of a double-quoted literal text.</span></p>
</li>
<li>
<p class="sectionentry"><a href="15-tpr.html">
<spon class="sectiontitle">The Provision Relation</span></a> -
<span class="sectionpurpose">To define the provision relation, which determines which properties can be held by which objects.</span></p>
</li>
<li>
<p class="sectionentry"><a href="15-cr.html">
<spon class="sectiontitle">Comparative Relations</span></a> -
<span class="sectionpurpose">When a measurement adjective like "tall" is defined, so is a comparative relation like "taller than".</span></p>
</li>
<li>
<p class="sectionentry"><a href="15-ma.html">
<spon class="sectiontitle">Measurement Adjectives</span></a> -
<span class="sectionpurpose">To define adjectives such as large, wide or roomy, which make implicit comparisons of the size of some numerical property, and which (unlike other adjectives) lead to comparative and superlative forms.</span></p>
</li>
<li>
<p class="sectionentry"><a href="15-spr.html">
<spon class="sectiontitle">Same Property Relation</span></a> -
<span class="sectionpurpose">Each value property has an associated relation to compare its value between two holders.</span></p>
</li>
<li>
<p class="sectionentry"><a href="15-spr2.html">
<spon class="sectiontitle">Setting Property Relation</span></a> -
<span class="sectionpurpose">Each value property has an associated relation to set its value.</span></p>
</li>
<li>
<p class="sectionentry"><a href="15-pov.html">
<spon class="sectiontitle">Properties of Values</span></a> -
<span class="sectionpurpose">Two unrelated but minor support needs for properties of values which are not objects.</span></p>
</li>
<li>
<p class="sectionentry"><a href="15-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>
</ul>
</li>
<li>
<p class="chapterentry"><a name="16"></a>
<span class="chaptertitle">Chapter 16: Inference and Model</span></p>
<p class="chapterpurpose">Having now essentially disposed of the original assertion sentences by converting them to propositions, which in turn generated basic inferences about the model world, we must now resolve this mass of facts, applying Occam's Razor to construct the simplest explicit model of the world which fits this knowledge.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="16-is.html">
<spon class="sectiontitle">Inference Subjects</span></a> -
<span class="sectionpurpose">The different data structures for elements of the model world are all unified by a single concept, the inference subject, about which facts can be known.</span></p>
</li>
<li>
<p class="sectionentry"><a href="16-kar.html">
<spon class="sectiontitle">Knowledge about Relations</span></a> -
<span class="sectionpurpose">To store inferences about the state of relationships.</span></p>
</li>
<li>
<p class="sectionentry"><a href="16-pp.html">
<spon class="sectiontitle">Property Permissions</span></a> -
<span class="sectionpurpose">To enforce the domain of properties: for instance, that a door can be open or closed but that an animal cannot, or that a person can have a carrying capacity but that a door cannot.</span></p>
</li>
<li>
<p class="sectionentry"><a href="16-in.html">
<spon class="sectiontitle">Inferences</span></a> -
<span class="sectionpurpose">To manage the individual pieces of information gathered, with varying degrees of certainty, from assertion sentences. This is mostly information about which objects have what properties.</span></p>
</li>
<li>
<p class="sectionentry"><a href="16-cmw.html">
<spon class="sectiontitle">Complete Model World</span></a> -
<span class="sectionpurpose">Once the assertions have all been read and reduced to inferences, and all the creations have been made, we take stock; sometimes we spot inconsistencies, sometimes we make deductions, and we try to complete our picture of the model world.</span></p>
</li>
<li>
<p class="sectionentry"><a href="16-cmw2.html">
<spon class="sectiontitle">Compile Model World</span></a> -
<span class="sectionpurpose">To manage the compilation of the diverse run-time arrays and/or code needed to set up the initial state of the model world.</span></p>
</li>
<li>
<p class="sectionentry"><a href="16-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>
</ul>
</li>
<li>
<p class="chapterentry"><a name="17"></a>
<span class="chaptertitle">Chapter 17: Text Data</span></p>
<p class="chapterpurpose">Text literals, which may be constant strings, or may be functions in order to implement substitutions.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="17-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="17-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="17-rs.html">
<spon class="sectiontitle">Responses</span></a> -
<span class="sectionpurpose">In this section we keep track of response texts.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="18"></a>
<span class="chaptertitle">Chapter 18: List Data</span></p>
<p class="chapterpurpose">List literals.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="18-lc.html">
<spon class="sectiontitle">List Constants</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="19"></a>
<span class="chaptertitle">Chapter 19: Table Data</span></p>
<p class="chapterpurpose">Inform's preferred data structure for small initialised databases.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="19-tc.html">
<spon class="sectiontitle">Table Columns</span></a> -
<span class="sectionpurpose">To manage the named columns which appear in tables.</span></p>
</li>
<li>
<p class="sectionentry"><a href="19-tb.html">
<spon class="sectiontitle">Tables</span></a> -
<span class="sectionpurpose">To manage and compile tables, which are two-dimensional arrays with associative look-up facilities provided at run-time.</span></p>
</li>
<li>
<p class="sectionentry"><a href="19-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="19-lr.html">
<spon class="sectiontitle">Listed-In Relations</span></a> -
<span class="sectionpurpose">To define the binary predicates corresponding to table columns, and which determine whether a given value is listed in that column.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="20"></a>
<span class="chaptertitle">Chapter 20: Equations</span></p>
<p class="chapterpurpose">Simple mathematical or scientific equations, which can be solved at run-time.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="20-eq.html">
<spon class="sectiontitle">Equations</span></a> -
<span class="sectionpurpose">To manage and compile equations, which relate numerical quantities.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="21"></a>
<span class="chaptertitle">Chapter 21: Rules and Rulebooks</span></p>
<p class="chapterpurpose">Rules are named phrases which are invoked in a particular way, and rulebooks a way to organise lists of them.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="21-rl.html">
<spon class="sectiontitle">Rules</span></a> -
<span class="sectionpurpose">Rule structures abstract the Inform 7 concept of a rule, which may be defined either by an Inform 6 routine or by higher-level source text from a phrase structure.</span></p>
</li>
<li>
<p class="sectionentry"><a href="21-rb.html">
<spon class="sectiontitle">Rule Bookings</span></a> -
<span class="sectionpurpose">Bookings are assignments of rules to rulebooks. We can think of them as being looseleaf pages, of which we have an unlimited supply: any rule can be written on them, and they can be bound into any rulebook at any specified position.</span></p>
</li>
<li>
<p class="sectionentry"><a href="21-rl2.html">
<spon class="sectiontitle">Rulebooks</span></a> -
<span class="sectionpurpose">To create, manage, compile and index rulebooks, the content of which is a linked list of booked rules together with some general conventions as to how they are to be used.</span></p>
</li>
<li>
<p class="sectionentry"><a href="21-fao.html">
<spon class="sectiontitle">Focus and Outcome</span></a> -
<span class="sectionpurpose">To look after the value or action on which a rulebook acts, and the possible outcomes it produces.</span></p>
</li>
<li>
<p class="sectionentry"><a href="21-sv.html">
<spon class="sectiontitle">Stacked Variables</span></a> -
<span class="sectionpurpose">To permit variables to have scopes intermediate between local and global: for example, to be shared by all rules in a given rulebook.</span></p>
</li>
<li>
<p class="sectionentry"><a href="21-ac.html">
<spon class="sectiontitle">Activities</span></a> -
<span class="sectionpurpose">To create and manage activities, which are action-like bundles of rules controlling how the I6 runtime code carries out tasks such as "printing the name of something". Each has its own page in the I7 documentation. An activity list is a disjunction of actitivies.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="22"></a>
<span class="chaptertitle">Chapter 22: Phrases</span></p>
<p class="chapterpurpose">In which rules, To... phrases (and similar explicit instructions to do with specific changes in the world) have their preambles parsed and their premisses worked out, and are then collected together into rulebooks, before being compiled as a great mass of Inform 6 routines and arrays.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="22-itp.html">
<spon class="sectiontitle">Introduction to Phrases</span></a> -
<span class="sectionpurpose">An exposition of the data structures used inside Inform to hold phrases, rules and rulebooks.</span></p>
</li>
<li>
<p class="sectionentry"><a href="22-cs.html">
<spon class="sectiontitle">Construction Sequence</span></a> -
<span class="sectionpurpose">To deal with all the |.i6t| interpreted commands which bring about the compilation of phrases, and to ensure that they are used in the correct order.</span></p>
</li>
<li>
<p class="sectionentry"><a href="22-ph.html">
<spon class="sectiontitle">Phrases</span></a> -
<span class="sectionpurpose">To create one |phrase| object for each phrase declaration in the source text.</span></p>
</li>
<li>
<p class="sectionentry"><a href="22-pu.html">
<spon class="sectiontitle">Phrase Usage</span></a> -
<span class="sectionpurpose">To parse the preamble of a phrase declaration to a phrase usage (PHUD) structure containing a mostly textual representation of the conditions for its usage.</span></p>
</li>
<li>
<p class="sectionentry"><a href="22-prcd.html">
<spon class="sectiontitle">Phrase Runtime Context Data</span></a> -
<span class="sectionpurpose">To store the circumstances in which a rule phrase should fire.</span></p>
</li>
<li>
<p class="sectionentry"><a href="22-ptd.html">
<spon class="sectiontitle">Phrase Type Data</span></a> -
<span class="sectionpurpose">To create, manage, compare the logical specificity of, and assist excerpt parsing concerning, the type of a To phrase. This involves whether it is void, determines a condition or returns a value (and if so, what kind of value); and also what parameters it takes (possibly values, possible other types used by inline definitions) and their types in turn.</span></p>
</li>
<li>
<p class="sectionentry"><a href="22-dptd.html">
<spon class="sectiontitle">Describing Phrase Type Data</span></a> -
<span class="sectionpurpose">To convert phrase type data to and from text.</span></p>
</li>
<li>
<p class="sectionentry"><a href="22-po.html">
<spon class="sectiontitle">Phrase Options</span></a> -
<span class="sectionpurpose">To create and subsequently parse against the list of phrase options with which the user can choose to invoke a To phrase.</span></p>
</li>
<li>
<p class="sectionentry"><a href="22-pav.html">
<spon class="sectiontitle">Phrases as Values</span></a> -
<span class="sectionpurpose">To provide the names of phrases as first-class values.</span></p>
</li>
<li>
<p class="sectionentry"><a href="22-tp.html">
<spon class="sectiontitle">To Phrases</span></a> -
<span class="sectionpurpose">To manage the sorting of To... phrases in logical precedence order, and keep track of which kinds they are being applied to.</span></p>
</li>
<li>
<p class="sectionentry"><a href="22-tp2.html">
<spon class="sectiontitle">Timed Phrases</span></a> -
<span class="sectionpurpose">Another way phrases can be invoked is as timed events, which need no special Inform data structure and are simply compiled into a pair of timetable I6 arrays to be processed at run-time.</span></p>
</li>
<li>
<p class="sectionentry"><a href="22-pi.html">
<spon class="sectiontitle">Phrasebook Index</span></a> -
<span class="sectionpurpose">To compile most of the HTML page for the Phrasebook index.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="23"></a>
<span class="chaptertitle">Chapter 23: Calculated Adjectives</span></p>
<p class="chapterpurpose">Adjectives whose truth or falsity at run-time has to be determined by running code.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="23-ad.html">
<spon class="sectiontitle">Adjectival Definitions</span></a> -
<span class="sectionpurpose">The second of four ways phrases are invoked: as definitions of adjectives which can be used as unary predicates in the calculus. (And we also look after adjectives arising from I6 or I7 conditions, and from I6 routines.)</span></p>
</li>
<li>
<p class="sectionentry"><a href="23-abrp.html">
<spon class="sectiontitle">Adjectives by Raw Phrase</span></a> -
<span class="sectionpurpose">Defining an adjective with an I6 routine.</span></p>
</li>
<li>
<p class="sectionentry"><a href="23-abrc.html">
<spon class="sectiontitle">Adjectives by Raw Condition</span></a> -
<span class="sectionpurpose">Defining an adjective with an I6 condition.</span></p>
</li>
<li>
<p class="sectionentry"><a href="23-abp.html">
<spon class="sectiontitle">Adjectives by Phrase</span></a> -
<span class="sectionpurpose">Adjectives defined by an I7 phrase.</span></p>
</li>
<li>
<p class="sectionentry"><a href="23-abc.html">
<spon class="sectiontitle">Adjectives by Condition</span></a> -
<span class="sectionpurpose">Defining an adjective with an I7 condition.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="24"></a>
<span class="chaptertitle">Chapter 24: Compilation Context</span></p>
<p class="chapterpurpose">Preparing a context at run-time in which code can be executed: creating local variables, and so on.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="24-lv.html">
<spon class="sectiontitle">Local Variables</span></a> -
<span class="sectionpurpose">Local variables are used for call parameters, temporary values, and other ephemeral workspace.</span></p>
</li>
<li>
<p class="sectionentry"><a href="24-pb.html">
<spon class="sectiontitle">Phrase Blocks</span></a> -
<span class="sectionpurpose">Blocks of code are used to give conditionals and loops greater scope, as in more traditional programming languages.</span></p>
</li>
<li>
<p class="sectionentry"><a href="24-sf.html">
<spon class="sectiontitle">Stack Frames</span></a> -
<span class="sectionpurpose">When Inform compiles phrase invocations, or implied forms of these such as text substitutions, it does so in the context of a "stack frame". This provides for local "let" values, manages loop blocks, and in general looks after any information shared between a whole sequence of invocations.</span></p>
</li>
<li>
<p class="sectionentry"><a href="24-ch.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="25"></a>
<span class="chaptertitle">Chapter 25: Compilation</span></p>
<p class="chapterpurpose">Generating code to perform individual phrases.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="25-in.html">
<spon class="sectiontitle">Invocations</span></a> -
<span class="sectionpurpose">Specifications which ask to use a phrase (which are "phrasal") indicate which phrase they intend by means of a list of "invocations". This list goes on to record the outcome of type-checking and provides instructions for code generation, as we see here.</span></p>
</li>
<li>
<p class="sectionentry"><a href="25-pi.html">
<spon class="sectiontitle">Parse Invocations</span></a> -
<span class="sectionpurpose">To register phrases with the excerpt parser, and to provide the excerpt parser with help in putting invocations together.</span></p>
</li>
<li>
<p class="sectionentry"><a href="25-ci.html">
<spon class="sectiontitle">Compile Invocations</span></a> -
<span class="sectionpurpose">Here we generate Inform 6 code to execute the phrase(s) called for by an invocation list.</span></p>
</li>
<li>
<p class="sectionentry"><a href="25-ciac.html">
<spon class="sectiontitle">Compile Invocations As Calls</span></a> -
<span class="sectionpurpose">Here we generate Inform 6 code to execute the phrase(s) called for by an invocation list.</span></p>
</li>
<li>
<p class="sectionentry"><a href="25-cii.html">
<spon class="sectiontitle">Compile Invocations Inline</span></a> -
<span class="sectionpurpose">Here we generate Inform 6 code to execute the phrase(s) called for by an invocation list.</span></p>
</li>
<li>
<p class="sectionentry"><a href="25-cp.html">
<spon class="sectiontitle">Compile Phrases</span></a> -
<span class="sectionpurpose">Phrases defined with a list of invocations, rather than inline, have to be compiled to I6 routines, and this is where we organise that.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="26"></a>
<span class="chaptertitle">Chapter 26: Compilation Utilities</span></p>
<p class="chapterpurpose">Mainly low-level utilities for compiling code.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="26-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="26-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="26-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="26-jl.html">
<spon class="sectiontitle">Jump Labels</span></a> -
<span class="sectionpurpose">I7 is has no Dijkstra-like conscience about compiling code which is full of |jump| statements, and these require labels to jump to. This section provides those labels, and other related unique-ID-number counters.</span></p>
</li>
<li>
<p class="sectionentry"><a href="26-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="26-rt.html">
<spon class="sectiontitle">Routines</span></a> -
<span class="sectionpurpose">To compile the bones of functions, and their local variable declarations.</span></p>
</li>
<li>
<p class="sectionentry"><a href="26-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>
<li>
<p class="sectionentry"><a href="26-pl.html">
<spon class="sectiontitle">Plugins</span></a> -
<span class="sectionpurpose">To manage the interface between core Inform and some of its outlying or domain-specific components.</span></p>
</li>
<li>
<p class="sectionentry"><a href="26-pc.html">
<spon class="sectiontitle">Plugin Calls</span></a> -
<span class="sectionpurpose">To place calls to the plugins.</span></p>
</li>
<li>
<p class="sectionentry"><a href="26-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="26-itc.html">
<spon class="sectiontitle">Internal Test Cases</span></a> -
<span class="sectionpurpose">Handling requests to compile internal tests.</span></p>
</li>
<li>
<p class="sectionentry"><a href="26-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>
</ul>
</li>
<li>
<p class="chapterentry"><a name="27"></a>
<span class="chaptertitle">Chapter 27: Bridge to Inter Module</span></p>
<p class="chapterpurpose">Emitting Inter code ready for the code-generator.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="27-hr.html">
<spon class="sectiontitle">Hierarchy</span></a> -
<span class="sectionpurpose"></span></p>
</li>
<li>
<p class="sectionentry"><a href="27-cm.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="27-em.html">
<spon class="sectiontitle">Emitting Inter</span></a> -
<span class="sectionpurpose"></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>