1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-05 08:34:22 +03:00
inform7/docs/if-module/index.html
2021-03-16 09:08:31 +00:00

343 lines
17 KiB
HTML

<html>
<head>
<title>if</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><a href="../runtime-module/index.html">runtime</a></li>
<li><span class="unlink">if</span></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>if</b></li></ul>
<p class="purpose">The interactive-fiction specific layer of Inform, 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 if module's role and abilities.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="1"></a>
<span class="chaptertitle">Chapter 1: Starting Up</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="1-im.html">
<spon class="sectiontitle">IF 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: Bibliographic Data</span></p>
<p class="chapterpurpose">ISBN-like data and cataloguing information, and Release... sentences.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="2-bd.html">
<spon class="sectiontitle">Bibliographic Data</span></a> -
<span class="sectionpurpose">To manage the special variables providing bibliographic data on the work of IF being generated (title, author's name and so forth), and to write the Library Card in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-ri.html">
<spon class="sectiontitle">Release Instructions</span></a> -
<span class="sectionpurpose">To write the iFiction record for the work of IF compiled, its release instructions and its picture manifest, if any.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-tir.html">
<spon class="sectiontitle">The iFiction Record</span></a> -
<span class="sectionpurpose">To write the iFiction record for the work of IF compiled.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-tbf.html">
<spon class="sectiontitle">The Blurb File</span></a> -
<span class="sectionpurpose">To write the blurb file of instructions for inblorb to release the project.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="3"></a>
<span class="chaptertitle">Chapter 3: Space and Time</span></p>
<p class="chapterpurpose">A simulated world of geography, spatial containment and scenes.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="3-sm.html">
<spon class="sectiontitle">Spatial Model</span></a> -
<span class="sectionpurpose">A plugin which constructs the fundamental spatial model used by IF, to represent containment, support, carrying, wearing, and incorporation.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-enah.html">
<spon class="sectiontitle">Everywhere, Nowhere and Here</span></a> -
<span class="sectionpurpose">To define the unary predicates for some anaphoric location adjectives.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-sr.html">
<spon class="sectiontitle">Spatial Relations</span></a> -
<span class="sectionpurpose">Binary predicates for spatial relationships.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-si.html">
<spon class="sectiontitle">Spatial Inferences</span></a> -
<span class="sectionpurpose">Six families of inference used by the spatial plugin.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-prs.html">
<spon class="sectiontitle">Persons</span></a> -
<span class="sectionpurpose">A plugin giving minimal support for switchable devices.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-tp.html">
<spon class="sectiontitle">The Player</span></a> -
<span class="sectionpurpose">A plugin to give a special role to a person who is the protagonist.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-dvc.html">
<spon class="sectiontitle">Devices</span></a> -
<span class="sectionpurpose">A plugin giving minimal support for switchable devices.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-bck.html">
<spon class="sectiontitle">Backdrops</span></a> -
<span class="sectionpurpose">A plugin to provide support for backdrop objects, which are present as scenery in multiple rooms at once.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-rgn.html">
<spon class="sectiontitle">Regions</span></a> -
<span class="sectionpurpose">A plugin providing support for grouping rooms together into named and nestable regions.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-tm.html">
<spon class="sectiontitle">The Map</span></a> -
<span class="sectionpurpose">A plugin to provide a geographical model, linking rooms and doors together in oppositely-paired directions.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-mcr.html">
<spon class="sectiontitle">Map Connection Relations</span></a> -
<span class="sectionpurpose">To define one binary predicate for each map direction, such as "mapped north of".</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-scn.html">
<spon class="sectiontitle">Scenes</span></a> -
<span class="sectionpurpose">A plugin to support named periods of time during an interactive story.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-ts.html">
<spon class="sectiontitle">The Score</span></a> -
<span class="sectionpurpose">A plugin to support the score variables.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="4"></a>
<span class="chaptertitle">Chapter 4: Actions</span></p>
<p class="chapterpurpose">Actions are impulses to do something within the simulated world.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="4-ap.html">
<spon class="sectiontitle">Actions Plugin</span></a> -
<span class="sectionpurpose">A plugin for actions, by which animate characters change the world model.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-anaa.html">
<spon class="sectiontitle">Actions-Only Nodes and Annotations</span></a> -
<span class="sectionpurpose">Additional syntax tree node and annotation types used by the actions plugin.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-ak.html">
<spon class="sectiontitle">Action Kinds</span></a> -
<span class="sectionpurpose">Three action-related kinds of value.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-ac.html">
<spon class="sectiontitle">Action Conditions</span></a> -
<span class="sectionpurpose">A special condition for testing against action patterns.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-act.html">
<spon class="sectiontitle">Actions</span></a> -
<span class="sectionpurpose">Each different sort of impulse to do something is an "action name".</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-as.html">
<spon class="sectiontitle">Action Semantics</span></a> -
<span class="sectionpurpose">Constraints on how actions may be used in the model world.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-av.html">
<spon class="sectiontitle">Action Variables</span></a> -
<span class="sectionpurpose">Variables shared by the rules of the rulebooks processing an action.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-ann.html">
<spon class="sectiontitle">Action Name Names</span></a> -
<span class="sectionpurpose">There is an annoying profusion of ways an action can have a name.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-ap2.html">
<spon class="sectiontitle">Action Patterns</span></a> -
<span class="sectionpurpose">An action pattern is a description which may match many actions or none. The text "doing something" matches every action, while "throwing something at a door in a dark room" is seldom matched.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-anl.html">
<spon class="sectiontitle">Action Name Lists</span></a> -
<span class="sectionpurpose">Action name lists are used in parsing action patterns, and identify which action names seem to be possible within them.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-apc.html">
<spon class="sectiontitle">Action Pattern Clauses</span></a> -
<span class="sectionpurpose">Pattern-matches on individual nouns in an action are called clauses.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-pap.html">
<spon class="sectiontitle">Parse Action Patterns</span></a> -
<span class="sectionpurpose">Turning text into APs.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-pc.html">
<spon class="sectiontitle">Parse Clauses</span></a> -
<span class="sectionpurpose">Parsing the clauses part of an AP from source text.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-ea.html">
<spon class="sectiontitle">Explicit Actions</span></a> -
<span class="sectionpurpose">An exactly specified action is called "explicit".</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-nap.html">
<spon class="sectiontitle">Named Action Patterns</span></a> -
<span class="sectionpurpose">A named action pattern is a categorisation of behaviour.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-gng.html">
<spon class="sectiontitle">Going</span></a> -
<span class="sectionpurpose">A plugin to provide a little extra support for the "going" action.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="5"></a>
<span class="chaptertitle">Chapter 5: Command Parser</span></p>
<p class="chapterpurpose">Understand... sentences become a grammar for the command parser to use at run-time.</p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="5-pp.html">
<spon class="sectiontitle">Parsing Plugin</span></a> -
<span class="sectionpurpose">A plugin for command-parser support.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-pnaa.html">
<spon class="sectiontitle">Parsing-Only Nodes and Annotations</span></a> -
<span class="sectionpurpose">Additional syntax tree node and annotation types used by the parsing plugin.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-us.html">
<spon class="sectiontitle">Understand Sentences</span></a> -
<span class="sectionpurpose">Command parser grammar is laid out in special Understand... sentences.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-cg.html">
<spon class="sectiontitle">Command Grammars</span></a> -
<span class="sectionpurpose">The possible command text following a command verb, or referring to a single concept or object, is gathered into a "command grammar".</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-cgl.html">
<spon class="sectiontitle">Command Grammar Lines</span></a> -
<span class="sectionpurpose">A CG line is a list of CG tokens to specify a textual pattern. For example, "take [something] out" is a CG line of three tokens.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-gt.html">
<spon class="sectiontitle">Grammar Tokens</span></a> -
<span class="sectionpurpose">To handle grammar at the level of individual tokens. I7 grammar tokens correspond in a 1-to-1 way with I6 tokens: here we determine the I7 type a token represents (if any) and compile it to its I6 grammar token equivalent as needed.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-dt.html">
<spon class="sectiontitle">Determination Types</span></a> -
<span class="sectionpurpose">Command grammars, their lines and their tokens may each "determine" up to two values, and here we provide a way to describe the range of those.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-gp.html">
<spon class="sectiontitle">Grammar Properties</span></a> -
<span class="sectionpurpose">A plugin for the I6 run-time properties needed to support parsing.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-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="5-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="5-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>
</ul>
</li>
</ul>
</div>
<hr>
<p class="purpose">Powered by <a href="https://github.com/ganelson/inweb">Inweb</a>.</p>
</main>
</body>
</html>